hydra.langs.shex.syntax.ShapeDefinition Maven / Gradle / Ivy
package hydra.langs.shex.syntax;
import java.io.Serializable;
public class ShapeDefinition implements Serializable {
public static final hydra.core.Name NAME = new hydra.core.Name("hydra/langs/shex/syntax.ShapeDefinition");
public final java.util.List listOfAlts;
public final java.util.Optional tripleExpression;
public final java.util.List listOfAnnotation;
public final hydra.langs.shex.syntax.SemanticActions semanticActions;
public ShapeDefinition (java.util.List listOfAlts, java.util.Optional tripleExpression, java.util.List listOfAnnotation, hydra.langs.shex.syntax.SemanticActions semanticActions) {
this.listOfAlts = listOfAlts;
this.tripleExpression = tripleExpression;
this.listOfAnnotation = listOfAnnotation;
this.semanticActions = semanticActions;
}
@Override
public boolean equals(Object other) {
if (!(other instanceof ShapeDefinition)) {
return false;
}
ShapeDefinition o = (ShapeDefinition) (other);
return listOfAlts.equals(o.listOfAlts) && tripleExpression.equals(o.tripleExpression) && listOfAnnotation.equals(o.listOfAnnotation) && semanticActions.equals(o.semanticActions);
}
@Override
public int hashCode() {
return 2 * listOfAlts.hashCode() + 3 * tripleExpression.hashCode() + 5 * listOfAnnotation.hashCode() + 7 * semanticActions.hashCode();
}
public ShapeDefinition withListOfAlts(java.util.List listOfAlts) {
return new ShapeDefinition(listOfAlts, tripleExpression, listOfAnnotation, semanticActions);
}
public ShapeDefinition withTripleExpression(java.util.Optional tripleExpression) {
return new ShapeDefinition(listOfAlts, tripleExpression, listOfAnnotation, semanticActions);
}
public ShapeDefinition withListOfAnnotation(java.util.List listOfAnnotation) {
return new ShapeDefinition(listOfAlts, tripleExpression, listOfAnnotation, semanticActions);
}
public ShapeDefinition withSemanticActions(hydra.langs.shex.syntax.SemanticActions semanticActions) {
return new ShapeDefinition(listOfAlts, tripleExpression, listOfAnnotation, semanticActions);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy