private OneOfAttributeBuilder() { result = new OneOfAttribute(); }
public OneOfAttribute build() { result.setAnnotations(Collections.unmodifiableSet(new HashSet<>(result.getAnnotations()))); result.setAlternatives(Collections.unmodifiableList(result.getAlternatives())); return result; } }
public OneOfAttributeBuilder documentation(final String newDocumentation) { if (newDocumentation != null) { result.setDocumentation(newDocumentation); } return this; }
public OneOfAttributeBuilder qualifier(final String newQualifier) { if (newQualifier != null) { result.setQualifier(newQualifier); } return this; }
public OneOfAttributeBuilder type(final Type newType) { if (newType != null) { result.setType(newType); } return this; }
public OneOfAttributeBuilder annotation(final Annotation newAnnotation) { if (newAnnotation != null) { result.getAnnotations().add(newAnnotation); } return this; }
public OneOfAttributeBuilder addAlternative(final Attribute newAttribute) { if (newAttribute != null) { if (result.getAlternativeByTypeQulifier(newAttribute.getType()) != null) { throw new IllegalArgumentException("Cannot add more than one oneOf alternative Attribute with the same Type."); } result.alternatives.add(newAttribute); } return this; }
/** * Convenience method that retrieves the alternative with a given {@code Type}. * * @see #getAlternatives() */ public Attribute getAlternativeByTypeQulifier(final Type alternativeType) { for (final Attribute attr : getAlternatives()) { if (attr.getType().getQualifier().equals(alternativeType.getQualifier())) { return attr; } } return null; }
final OneOfAttributeBuilder oneOfAttributeBuilder = OneOfAttribute.oneOfBuilder() .qualifier(attributeQualifer) .type(oneOfTypeModel);