com.fibanez.jsonschema.content.generator.schemaMerger.EnumSchemaMerger Maven / Gradle / Ivy
package com.fibanez.jsonschema.content.generator.schemaMerger;
import com.fibanez.jsonschema.content.generator.exception.GeneratorException;
import org.everit.json.schema.ConstSchema;
import org.everit.json.schema.EnumSchema;
import org.everit.json.schema.Schema;
import org.everit.json.schema.StringSchema;
import java.util.Collections;
import java.util.Set;
final class EnumSchemaMerger implements SchemaMerger {
private final EnumSchema.Builder schemaBuilder;
EnumSchemaMerger() {
this.schemaBuilder = new EnumSchema.Builder();
}
@Override
public EnumSchema getSchema() {
return schemaBuilder.build();
}
@Override
public SchemaMerger combine(Schema schema) {
if (schema instanceof EnumSchema) {
doCombine((EnumSchema) schema);
} else if (schema instanceof ConstSchema) {
doCombine((ConstSchema) schema);
} else if (schema instanceof StringSchema) {
// do nothing
} else {
throw new GeneratorException("Unsupported merge schema '%s'", schema.getClass());
}
return this;
}
@Override
public EnumSchemaMerger not(Schema schema) {
if (schema instanceof EnumSchema) {
doNot((EnumSchema) schema);
} else if (schema instanceof ConstSchema) {
doNot((ConstSchema) schema);
} else {
throw new GeneratorException("Unsupported merge schema '%s'", schema.getClass());
}
return this;
}
private void doCombine(EnumSchema schema) {
Set
© 2015 - 2025 Weber Informatics LLC | Privacy Policy