Skip to content

Commit

Permalink
Remove duplicated code
Browse files Browse the repository at this point in the history
  • Loading branch information
mr-zepol committed Jan 16, 2025
1 parent 962813c commit d56f892
Show file tree
Hide file tree
Showing 7 changed files with 30 additions and 50 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,8 @@
"mode",
"padding",
"cryptoFunctions",
"classicalSecurityLevel", "nistQuantumSecurityLevel"
"classicalSecurityLevel",
"nistQuantumSecurityLevel"
})
public class AlgorithmProperties
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,17 +48,7 @@ private void serializeXml(List<Object> choices, ToXmlGenerator xmlGenerator) thr
xmlGenerator.writeStartObject();
for (Object choice : choices) {
if (choice instanceof Property) {
xmlGenerator.writeFieldName("environmentVar");
xmlGenerator.writeStartObject();
Property prop = (Property) choice;
xmlGenerator.setNextIsAttribute(true);
xmlGenerator.writeFieldName("name");
xmlGenerator.writeString(prop.getName());
xmlGenerator.setNextIsAttribute(false);

xmlGenerator.setNextIsUnwrapped(true);
xmlGenerator.writeStringField("", prop.getValue());
xmlGenerator.writeEndObject();
SerializerUtils.serializeProperty("environmentVar", (Property) choice, xmlGenerator);
} else if (choice instanceof String) {
xmlGenerator.writeFieldName("value");
xmlGenerator.writeString((String) choice);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,20 +54,13 @@ else if (input.getData() != null) {
jsonGenerator.writeObject(input.getData());
}

writeField(jsonGenerator, "source", input.getSource());
writeField(jsonGenerator, "target", input.getTarget());
writeField(jsonGenerator, "properties", input.getProperties());
SerializerUtils.writeField(jsonGenerator, "source", input.getSource());
SerializerUtils.writeField(jsonGenerator, "target", input.getTarget());
SerializerUtils.writeField(jsonGenerator, "properties", input.getProperties());

jsonGenerator.writeEndObject();
}

protected void writeField(JsonGenerator jsonGenerator, String fieldName, Object fieldValue) throws IOException {
if (fieldValue != null) {
jsonGenerator.writeFieldName(fieldName);
jsonGenerator.writeObject(fieldValue);
}
}

@Override
public Class<InputType> handledType() {
return InputType.class;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,10 +50,10 @@ else if (output.getData() != null) {
jsonGenerator.writeObject( output.getData());
}

writeField(jsonGenerator, "type", output.getType());
writeField(jsonGenerator, "source", output.getSource());
writeField(jsonGenerator, "target", output.getTarget());
writeField(jsonGenerator, "properties", output.getProperties());
SerializerUtils.writeField(jsonGenerator, "type", output.getType());
SerializerUtils.writeField(jsonGenerator, "source", output.getSource());
SerializerUtils.writeField(jsonGenerator, "target", output.getTarget());
SerializerUtils.writeField(jsonGenerator, "properties", output.getProperties());
jsonGenerator.writeEndObject();
}

Expand Down Expand Up @@ -93,13 +93,6 @@ else if (output.getData() != null) {
xmlGenerator.writeEndObject();
}

protected void writeField(JsonGenerator jsonGenerator, String fieldName, Object fieldValue) throws IOException {
if (fieldValue != null) {
jsonGenerator.writeFieldName(fieldName);
jsonGenerator.writeObject(fieldValue);
}
}

@Override
public Class<OutputType> handledType() {
return OutputType.class;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,15 +55,7 @@ private static void serializeXml(final List<Property> properties, final ToXmlGen
{
xmlGenerator.writeStartArray();
for (Property property : properties) {
xmlGenerator.writeStartObject("property");
xmlGenerator.setNextIsAttribute(true);
xmlGenerator.writeFieldName("name");
xmlGenerator.writeString(property.getName());
xmlGenerator.setNextIsAttribute(false);

xmlGenerator.setNextIsUnwrapped(true);
xmlGenerator.writeStringField("", property.getValue());
xmlGenerator.writeEndObject();
SerializerUtils.serializeProperty("property", property, xmlGenerator);
}
xmlGenerator.writeEndArray();
}
Expand Down
19 changes: 19 additions & 0 deletions src/main/java/org/cyclonedx/util/serializer/SerializerUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import com.fasterxml.jackson.dataformat.xml.ser.ToXmlGenerator;
import org.cyclonedx.Version;
import org.cyclonedx.model.Hash;
import org.cyclonedx.model.Property;
import org.cyclonedx.model.VersionFilter;

public class SerializerUtils
Expand Down Expand Up @@ -42,5 +43,23 @@ public static boolean shouldSerializeField(Object obj, Version version, String f
}
}

public static void serializeProperty(String propertyName, Property prop, ToXmlGenerator xmlGenerator) throws IOException {
xmlGenerator.writeFieldName("environmentVar");
xmlGenerator.writeStartObject();
xmlGenerator.setNextIsAttribute(true);
xmlGenerator.writeFieldName("name");
xmlGenerator.writeString(prop.getName());
xmlGenerator.setNextIsAttribute(false);

xmlGenerator.setNextIsUnwrapped(true);
xmlGenerator.writeStringField("", prop.getValue());
xmlGenerator.writeEndObject();
}

public static void writeField(JsonGenerator jsonGenerator, String fieldName, Object fieldValue) throws IOException {
if (fieldValue != null) {
jsonGenerator.writeFieldName(fieldName);
jsonGenerator.writeObject(fieldValue);
}
}
}
8 changes: 0 additions & 8 deletions src/test/java/org/cyclonedx/BomJsonGeneratorTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,8 @@

import com.fasterxml.jackson.databind.JsonNode;

import java.io.FileReader;
import java.nio.charset.StandardCharsets;
import org.apache.commons.io.IOUtils;
import org.cyclonedx.exception.GeneratorException;
import org.cyclonedx.generators.BomGeneratorFactory;
import org.cyclonedx.generators.json.BomJsonGenerator;
import org.cyclonedx.generators.xml.BomXmlGenerator;
Expand All @@ -33,10 +31,8 @@
import org.cyclonedx.model.License;
import org.cyclonedx.model.LicenseChoice;
import org.cyclonedx.model.Metadata;
import org.cyclonedx.model.OrganizationalContact;
import org.cyclonedx.model.Service;
import org.cyclonedx.model.license.Expression;
import org.cyclonedx.model.metadata.ToolInformation;
import org.cyclonedx.parsers.JsonParser;
import org.cyclonedx.parsers.XmlParser;
import org.junit.jupiter.api.AfterEach;
Expand All @@ -52,10 +48,6 @@
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
import java.util.UUID;
import java.util.stream.Stream;
import java.util.Objects;

Expand Down

0 comments on commit d56f892

Please sign in to comment.