From: Antti Villberg Date: Sat, 11 Jan 2020 10:54:22 +0000 (+0200) Subject: Merge remote-tracking branch 'origin/master' into private/antti2 X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=commitdiff_plain;h=refs%2Fheads%2Fprivate%2Fantti2;hp=-c;p=simantics%2Fplatform.git Merge remote-tracking branch 'origin/master' into private/antti2 Conflicts: bundles/org.simantics.acorn/src/org/simantics/acorn/OperationQueue.java bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/request/PropertyInfo.java bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/variable/StandardVariableBuilder.java Change-Id: I5a4cbd88743669fa4b1104ec466c0efa3aa0aa3d --- ee8f590cd00bf1f046062f623b024f26ef17f4e1 diff --combined bundles/org.simantics.acorn/src/org/simantics/acorn/OperationQueue.java index c5cf5f7bf,a85aa8829..d48f9ba6d --- a/bundles/org.simantics.acorn/src/org/simantics/acorn/OperationQueue.java +++ b/bundles/org.simantics.acorn/src/org/simantics/acorn/OperationQueue.java @@@ -159,21 -159,19 +159,18 @@@ class OperationQueue */ synchronized long waitFor() { - mainProgram.assertMainProgramThread(); - - // One last check within the monitor - if(!operations.isEmpty() || !tasks.isEmpty()) return 0; + mainProgram.assertMainProgramThread(); - long start = System.nanoTime(); + // One last check within the monitor + if(!operations.isEmpty() || !tasks.isEmpty()) return 0; - try { - wait(5000); - } catch (InterruptedException e) { - LOGGER.error("Unexpected interruption", e); - } - - return System.nanoTime() - start; + long start = System.nanoTime(); + try { + wait(5000); + } catch (InterruptedException e) { + LOGGER.error("Unexpected interruption", e); + } + return System.nanoTime() - start; } -- } diff --combined bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/request/PropertyInfo.java index a7ef69c8b,6ecfb8ead..286ce09aa --- a/bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/request/PropertyInfo.java +++ b/bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/request/PropertyInfo.java @@@ -28,103 -28,99 +28,99 @@@ import org.simantics.layer0.Layer0 import org.simantics.utils.datastructures.Pair; public class PropertyInfo { - public final Resource predicate; - public final String name; - public final boolean isImmutable; - public final boolean isHasProperty; - public final boolean isFunctional; - public final Set classifications; - public final VariableBuilder builder; - public final Resource literalRange; - public final Datatype requiredDatatype; - public final String requiredValueType; - public final String definedUnit; - public final Binding defaultBinding; - public final Map> subliteralPredicates; - public final ValueAccessor valueAccessor; - public final boolean hasEnumerationRange; - public PropertyInfo(Resource predicate, String name, boolean isImmutable, boolean isFunctional, boolean isHasProperty, Set classifications, VariableBuilder builder, Resource literalRange, Datatype requiredDatatype, String definedUnit, String requiredValueType, Binding defaultBinding, Map> subliteralPredicates, ValueAccessor valueAccessor, boolean hasEnumerationRange) { - this.predicate = predicate; - this.name = name; - this.isImmutable = isImmutable; - this.isFunctional = isFunctional; - this.isHasProperty = isHasProperty; - this.classifications = classifications; - this.builder = builder; - this.literalRange = literalRange; - this.requiredDatatype = requiredDatatype; - this.definedUnit = definedUnit; - this.requiredValueType = requiredValueType; - this.defaultBinding = defaultBinding; - this.subliteralPredicates = subliteralPredicates; - this.valueAccessor = valueAccessor; - this.hasEnumerationRange = hasEnumerationRange; - } - public static PropertyInfo make(ReadGraph graph, Resource predicate, String name, boolean isFunctional, boolean isHasProperty, Set classifications, VariableBuilder builder, Resource literalRange, Datatype requiredDatatype, String definedUnit, String requiredValueType, Map> subliteralPredicates, ValueAccessor valueAccessor, boolean hasEnumerationRange) throws DatabaseException { - - Layer0 L0 = Layer0.getInstance(graph); - if(literalRange != null) { - Collection dts = graph.getAssertedObjects(literalRange, L0.HasDataType); - if(dts.size() == 1) { - Datatype dt = graph.getPossibleValue(dts.iterator().next(), Bindings.DATATYPE); - if(requiredDatatype == null) requiredDatatype = dt; - } - } - - Binding defaultBinding = requiredDatatype != null ? Bindings.getBinding(requiredDatatype) : null; - - return new PropertyInfo(predicate, name, graph.isImmutable(predicate), isFunctional, isHasProperty, classifications, builder, literalRange, requiredDatatype, definedUnit, requiredValueType, defaultBinding, subliteralPredicates, valueAccessor, hasEnumerationRange); - - } - public boolean hasClassification(String classification) { - return classifications.contains(classification); - } - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("PropertyInfo [") - .append(name) - .append(" : ") - .append(requiredDatatype) - .append(" :: ") - .append(requiredValueType) - .append(", predicate=") - .append(predicate) - .append(", isFunctional=") - .append(isFunctional) - .append(", isHasProperty=") - .append(isHasProperty) - .append(", hasEnumerationRange=") - .append(hasEnumerationRange) - .append(", definedUnit=") - .append(definedUnit != null ? definedUnit : "") - .append(", defaultBinding=") - .append(defaultBinding) - .append(", valueAccessor=") - .append(valueAccessor) - .append("]"); - return sb.toString(); - } + public final Resource predicate; + public final String name; ++ public final boolean isImmutable; + public final boolean isHasProperty; + public final boolean isFunctional; + public final Set classifications; + public final VariableBuilder builder; + public final Resource literalRange; + public final Datatype requiredDatatype; + public final String requiredValueType; + public final String definedUnit; + public final Binding defaultBinding; + public final Map> subliteralPredicates; + public final ValueAccessor valueAccessor; + public final boolean hasEnumerationRange; - public PropertyInfo(Resource predicate, String name, boolean isFunctional, boolean isHasProperty, Set classifications, VariableBuilder builder, Resource literalRange, Datatype requiredDatatype, String definedUnit, String requiredValueType, Binding defaultBinding, Map> subliteralPredicates, ValueAccessor valueAccessor, boolean hasEnumerationRange) { ++ public PropertyInfo(Resource predicate, String name, boolean isImmutable, boolean isFunctional, boolean isHasProperty, Set classifications, VariableBuilder builder, Resource literalRange, Datatype requiredDatatype, String definedUnit, String requiredValueType, Binding defaultBinding, Map> subliteralPredicates, ValueAccessor valueAccessor, boolean hasEnumerationRange) { + this.predicate = predicate; + this.name = name; ++ this.isImmutable = isImmutable; + this.isFunctional = isFunctional; + this.isHasProperty = isHasProperty; + this.classifications = classifications; + this.builder = builder; + this.literalRange = literalRange; + this.requiredDatatype = requiredDatatype; + this.definedUnit = definedUnit; + this.requiredValueType = requiredValueType; + this.defaultBinding = defaultBinding; + this.subliteralPredicates = subliteralPredicates; + this.valueAccessor = valueAccessor; + this.hasEnumerationRange = hasEnumerationRange; + } + public static PropertyInfo make(ReadGraph graph, Resource predicate, String name, boolean isFunctional, boolean isHasProperty, Set classifications, VariableBuilder builder, Resource literalRange, Datatype requiredDatatype, String definedUnit, String requiredValueType, Map> subliteralPredicates, ValueAccessor valueAccessor, boolean hasEnumerationRange) throws DatabaseException { - + Layer0 L0 = Layer0.getInstance(graph); + if(literalRange != null) { + Collection dts = graph.getAssertedObjects(literalRange, L0.HasDataType); + if(dts.size() == 1) { + Datatype dt = graph.getPossibleValue(dts.iterator().next(), Bindings.DATATYPE); + if(requiredDatatype == null) requiredDatatype = dt; + } + } - + Binding defaultBinding = requiredDatatype != null ? Bindings.getBinding(requiredDatatype) : null; - - return new PropertyInfo(predicate, name, isFunctional, isHasProperty, classifications, builder, literalRange, requiredDatatype, definedUnit, requiredValueType, defaultBinding, subliteralPredicates, valueAccessor, hasEnumerationRange); - ++ return new PropertyInfo(predicate, name, graph.isImmutable(predicate), isFunctional, isHasProperty, classifications, builder, literalRange, requiredDatatype, definedUnit, requiredValueType, defaultBinding, subliteralPredicates, valueAccessor, hasEnumerationRange); + } + public boolean hasClassification(String classification) { + return classifications.contains(classification); + } + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("PropertyInfo [") + .append(name) + .append(" : ") + .append(requiredDatatype) + .append(" :: ") + .append(requiredValueType) + .append(", predicate=") + .append(predicate) + .append(", isFunctional=") + .append(isFunctional) + .append(", isHasProperty=") + .append(isHasProperty) + .append(", hasEnumerationRange=") + .append(hasEnumerationRange) + .append(", definedUnit=") + .append(definedUnit != null ? definedUnit : "") + .append(", defaultBinding=") + .append(defaultBinding) + .append(", valueAccessor=") + .append(valueAccessor) + .append("]"); + return sb.toString(); + } @Override public int hashCode() { final int prime = 31; int result = 1; - result = prime * result + ((builder == null) ? 0 : builder.hashCode()); - result = prime * result + ((classifications == null) ? 0 : classifications.hashCode()); - result = prime * result + ((defaultBinding == null) ? 0 : defaultBinding.hashCode()); - result = prime * result + ((definedUnit == null) ? 0 : definedUnit.hashCode()); - result = prime * result + (hasEnumerationRange ? 1231 : 1237); - result = prime * result + (isFunctional ? 1231 : 1237); - result = prime * result + (isHasProperty ? 1231 : 1237); - result = prime * result + ((literalRange == null) ? 0 : literalRange.hashCode()); - result = prime * result + ((name == null) ? 0 : name.hashCode()); result = prime * result + ((predicate == null) ? 0 : predicate.hashCode()); - result = prime * result + ((requiredDatatype == null) ? 0 : requiredDatatype.hashCode()); - result = prime * result + ((requiredValueType == null) ? 0 : requiredValueType.hashCode()); - result = prime * result + ((subliteralPredicates == null) ? 0 : subliteralPredicates.hashCode()); - result = prime * result + ((valueAccessor == null) ? 0 : valueAccessor.hashCode()); + if(!isImmutable) { + result = prime * result + ((builder == null) ? 0 : builder.hashCode()); + result = prime * result + ((classifications == null) ? 0 : classifications.hashCode()); + result = prime * result + ((defaultBinding == null) ? 0 : defaultBinding.hashCode()); + result = prime * result + ((definedUnit == null) ? 0 : definedUnit.hashCode()); + result = prime * result + (hasEnumerationRange ? 1231 : 1237); + result = prime * result + (isFunctional ? 1231 : 1237); + result = prime * result + (isHasProperty ? 1231 : 1237); + result = prime * result + ((literalRange == null) ? 0 : literalRange.hashCode()); + result = prime * result + ((name == null) ? 0 : name.hashCode()); + result = prime * result + ((requiredDatatype == null) ? 0 : requiredDatatype.hashCode()); + result = prime * result + ((requiredValueType == null) ? 0 : requiredValueType.hashCode()); + result = prime * result + ((subliteralPredicates == null) ? 0 : subliteralPredicates.hashCode()); + result = prime * result + ((valueAccessor == null) ? 0 : valueAccessor.hashCode()); + } return result; } @Override @@@ -136,13 -132,6 +132,13 @@@ if (getClass() != obj.getClass()) return false; PropertyInfo other = (PropertyInfo) obj; + if (predicate == null) { + if (other.predicate != null) + return false; + } else if (!predicate.equals(other.predicate)) + return false; + if(isImmutable) + return true; if (builder == null) { if (other.builder != null) return false; @@@ -179,6 -168,11 +175,6 @@@ return false; } else if (!name.equals(other.name)) return false; - if (predicate == null) { - if (other.predicate != null) - return false; - } else if (!predicate.equals(other.predicate)) - return false; if (requiredDatatype == null) { if (other.requiredDatatype != null) return false;