diff options
Diffstat (limited to 'openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/csar/ONAPManifestOnboarding.java')
-rw-r--r-- | openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/csar/ONAPManifestOnboarding.java | 58 |
1 files changed, 34 insertions, 24 deletions
diff --git a/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/csar/ONAPManifestOnboarding.java b/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/csar/ONAPManifestOnboarding.java index 2c4cc3a81f..02ee12db13 100644 --- a/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/csar/ONAPManifestOnboarding.java +++ b/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/csar/ONAPManifestOnboarding.java @@ -21,44 +21,54 @@ package org.openecomp.sdc.tosca.csar; import com.google.common.collect.ImmutableList; +import java.util.Optional; import org.openecomp.sdc.common.errors.Messages; -import java.util.Iterator; -import static org.openecomp.sdc.tosca.csar.CSARConstants.SEPARATOR_MF_ATTRIBUTE; -import static org.openecomp.sdc.tosca.csar.CSARConstants.SOURCE_MF_ATTRIBUTE; - -public class ONAPManifestOnboarding extends AbstractOnboardingManifest implements Manifest { +public class ONAPManifestOnboarding extends AbstractOnboardingManifest { @Override protected void processManifest(ImmutableList<String> lines) { super.processManifest(lines); if (errors.isEmpty() && sources.isEmpty()) { - errors.add(Messages.MANIFEST_NO_SOURCES.getErrorMessage()); + errors.add(Messages.MANIFEST_NO_SOURCES.getErrorMessage()); } } @Override - protected void processMetadata(Iterator<String> iterator) { - if(!iterator.hasNext()){ - return; - } - String line = iterator.next(); - if(isEmptyLine(iterator, line)) { - return; - } - String[] metaSplit = line.split(SEPARATOR_MF_ATTRIBUTE); - if (isInvalidLine(line, metaSplit)) { + protected void processMetadata() { + Optional<String> currentLine = getCurrentLine(); + if (!currentLine.isPresent() || !isMetadata(currentLine.get())) { + reportError(Messages.MANIFEST_START_METADATA); + continueToProcess = false; return; } - if (!metaSplit[0].equals(SOURCE_MF_ATTRIBUTE)){ - String value = line.substring((metaSplit[0] + SEPARATOR_MF_ATTRIBUTE).length()).trim(); - metadata.put(metaSplit[0].trim(),value.trim()); - processMetadata(iterator); - }else if(metaSplit[0].startsWith(SOURCE_MF_ATTRIBUTE)){ - String value = line.substring((metaSplit[0] + SEPARATOR_MF_ATTRIBUTE).length()).trim(); - sources.add(value); - processMetadata(iterator); + currentLine = readNextNonEmptyLine(); + + while (currentLine.isPresent() && continueToProcess) { + final String line = currentLine.get(); + final String entry = readEntryName(line).orElse(null); + if (entry == null) { + reportInvalidLine(); + } + final String value = readEntryValue(line).orElse(null); + if (value == null) { + reportInvalidLine(); + } + + final ManifestTokenType tokenType = ManifestTokenType.parse(entry).orElse(null); + if (tokenType == ManifestTokenType.SOURCE) { + sources.add(value); + } else { + addToMetadata(entry, value); + continueToProcess = isValid(); + } + currentLine = readNextNonEmptyLine(); } } + @Override + protected void processBody() { + //no implementation + } + } |