withLabel("property-constraint"). withComment("A property constraint"). withCardinality(Cardinality.mandatory()). withNodeKind(NodeKind.NODE). withDatatype(uri("datatype")). withLabel("inverse-property-constraint"). withComment("An inverse property constraint"). withCardinality(Cardinality.unbound()). withNodeKind(NodeKind.NODE). withDatatype(uri("anotherDatatype")).
withLabel("property-constraint"). withComment("A property constraint"). withCardinality(Cardinality.mandatory()). withNodeKind(NodeKind.NODE). withDatatype(uri("datatype")). withLabel("inverse-property-constraint"). withComment("An inverse property constraint"). withCardinality(Cardinality.unbound()). withNodeKind(NodeKind.NODE). withDatatype(uri("anotherDatatype")).
public static Cardinality unbound() { return new Cardinality(0,-1); }
public static Cardinality create(int min, int max) { return new Cardinality(min,max); }
public static Cardinality atMost(int max) { return new Cardinality(0,max); }
public static Cardinality optional() { return new Cardinality(0,1); }
public static Cardinality atLeast(int min) { return new Cardinality(min,-1); }
public static Cardinality mandatory() { return new Cardinality(1,1); }
private void populateCardinality(Individual<?,?> individual, Cardinality cardinality) { if(cardinality.min()>0) { individual.addValue(shaclTerm("minCount"), typedLiteral(cardinality.min(),"integer")); } if(cardinality.max()>=0) { individual.addValue(shaclTerm("maxCount"), typedLiteral(cardinality.max(),"integer")); } }
public Cardinality cardinality() { Cardinality result = this.cardinality; if(result==null) { result=Cardinality.unbound(); } return result; }