From 8e3bde44ec3d700287973277b7a37171a3e68c68 Mon Sep 17 00:00:00 2001 From: lempinen Date: Thu, 12 Jan 2012 14:29:44 +0000 Subject: [PATCH] In preparation for migration tools (refs #3038), all relations changed to start with a small letter, created with arrow syntax and located in proper places git-svn-id: https://www.simantics.org/svn/simantics/sysdyn/trunk@23940 ac1ea38d-2e2b-0410-8846-a27921b304fc --- org.simantics.sysdyn.ontology/graph.tg | Bin 79112 -> 78675 bytes .../graph/Sysdyn.pgraph | 296 +++---- .../graph/SysdynFunctions.pgraph | 8 +- .../graph/VensimFunctions.pgraph | 40 +- .../graph/WorkModel.pgraph | 116 +-- .../org/simantics/sysdyn/SysdynResource.java | 438 ++++++----- .../browser/actions/NewEnumerationAction.java | 2 +- .../ui/browser/actions/NewFunctionAction.java | 2 +- .../contributions/SimulationResult.java | 6 +- .../SimulationResultDecorator.java | 2 +- .../contributions/SimulationResultImager.java | 2 +- .../ui/browser/nodes/EnumerationNode.java | 8 +- .../ui/browser/nodes/ExperimentNode.java | 2 +- .../browser/nodes/SimulationResultNode.java | 2 +- .../dependencies/CreateDependencyGraph.java | 8 +- .../sysdyn/ui/elements2/InputFactory.java | 8 +- .../sysdyn/ui/elements2/ValveFactory.java | 4 +- .../RouteFlowConnectionFactory.java | 2 +- .../ui/handlers/ToggleResultActivation.java | 6 +- .../ExportExternalFunctionFilesHandler.java | 2 +- .../handlers/exports/ExportModuleHandler.java | 8 +- .../ImportExternalFunctionFilesHandler.java | 2 +- .../NewEnumerationNodeHandler.java | 2 +- .../newComponents/NewFunctionHandler.java | 2 +- .../ui/menu/PlaybackSliderContribution.java | 6 +- .../sysdyn/ui/project/SysdynProject.java | 6 +- .../sysdyn/ui/properties/ArrayIndexesTab.java | 10 +- .../ui/properties/ConfigurationTab.java | 20 +- .../sysdyn/ui/properties/DependencyTab.java | 14 +- .../sysdyn/ui/properties/EnumerationTab.java | 14 +- .../sysdyn/ui/properties/EquationTab.java | 34 +- .../ui/properties/InputVariableTab.java | 4 +- .../sysdyn/ui/properties/LookupTableTab.java | 16 +- .../sysdyn/ui/properties/ModuleInputTab.java | 4 +- .../sysdyn/ui/properties/ModuleOutputTab.java | 4 +- .../ResourceSelectionProcessor.java | 8 +- .../widgets/ArrayExpressionCombo.java | 24 +- .../ui/properties/widgets/ChartWidget.java | 8 +- .../properties/widgets/ExpressionWidget.java | 2 +- .../widgets/ModuleInputEditingSupport.java | 6 +- .../widgets/ModuleOutputEditingSupport.java | 8 +- .../ui/properties/widgets/ReferenceRow.java | 10 +- .../properties/widgets/ShortcutTabWidget.java | 2 +- .../widgets/ValveOrientationGroup.java | 14 +- .../widgets/ValveTextLocationGroup.java | 8 +- .../widgets/arrays/EnumerationIndexNode.java | 2 +- .../widgets/arrays/EnumerationIndexes.java | 2 +- .../widgets/arrays/EnumerationLabeler.java | 4 +- .../widgets/arrays/RedeclarationNode.java | 14 +- .../arrays/ReplaceableEnumerations.java | 2 +- .../arrays/ReplaceableIndexesWidget.java | 8 +- .../widgets/arrays/ShowInChartsCheckBox.java | 2 +- .../widgets/arrays/UsedEnumerations.java | 2 +- .../widgets/expressions/BasicExpression.java | 18 +- .../widgets/expressions/DelayExpression.java | 12 +- .../widgets/expressions/StockExpression.java | 10 +- .../expressions/WithLookupExpression.java | 20 +- .../widgets/functions/FunctionCodeWidget.java | 4 +- .../chart/properties/RangeComposite.java | 4 +- .../sysdyn/ui/utils/ExpressionUtils.java | 744 +++++++++--------- .../sysdyn/ui/utils/VariableNameUtils.java | 4 +- .../sysdyn/ui/validation/ValidationUtils.java | 6 +- .../modules/WizardModulesExportPage.java | 8 +- .../sysdyn/adapter/ChildVariable.java | 8 +- .../sysdyn/adapter/VariableRVIUtils.java | 12 +- .../sysdyn/manager/FunctionUtils.java | 4 +- .../sysdyn/manager/SysdynExperiment.java | 4 +- .../simantics/sysdyn/manager/SysdynModel.java | 6 +- .../manager/SysdynPlaybackExperiment.java | 6 +- .../mdlImport/mdlElements/Auxiliary.java | 2 +- .../mdlImport/mdlElements/Dependency.java | 2 +- .../mdlImport/mdlElements/Function.java | 2 +- .../sysdyn/mdlImport/mdlElements/Model.java | 4 +- .../sysdyn/mdlImport/mdlElements/Stock.java | 2 +- .../mdlImport/mdlElements/Subscript.java | 2 +- .../sysdyn/mdlImport/mdlElements/Valve.java | 2 +- .../mdlImport/mdlElements/Variable.java | 6 +- .../sysdyn/modelica/ModelicaWriter.java | 2 +- .../sysdyn/representation/ArrayIndexes.java | 3 +- .../sysdyn/representation/Auxiliary.java | 3 +- .../simantics/sysdyn/representation/Book.java | 3 +- .../sysdyn/representation/Cloud.java | 3 +- .../sysdyn/representation/Configuration.java | 18 +- .../sysdyn/representation/Dependency.java | 9 +- .../representation/DiagramContainerDummy.java | 3 +- .../sysdyn/representation/Enumeration.java | 9 +- .../representation/EnumerationIndex.java | 6 +- .../representation/EnumerationIndexes.java | 3 +- .../simantics/sysdyn/representation/Flow.java | 7 +- .../sysdyn/representation/Input.java | 41 +- .../sysdyn/representation/LibraryDummy.java | 3 +- .../sysdyn/representation/Model.java | 13 +- .../sysdyn/representation/Module.java | 12 +- .../sysdyn/representation/ModuleType.java | 8 +- .../sysdyn/representation/Redeclaration.java | 7 +- .../sysdyn/representation/Sheet.java | 2 +- .../sysdyn/representation/Stock.java | 7 +- .../sysdyn/representation/Valve.java | 3 +- .../sysdyn/representation/Variable.java | 12 +- .../expressions/ConstantExpression.java | 5 +- .../expressions/DelayExpression.java | 11 +- .../expressions/Expression.java | 3 +- .../expressions/Expressions.java | 3 +- .../expressions/LookupExpression.java | 3 +- .../expressions/NormalExpression.java | 5 +- .../expressions/ParameterExpression.java | 5 +- .../expressions/StockExpression.java | 5 +- .../expressions/WithLookupExpression.java | 7 +- 108 files changed, 1143 insertions(+), 1199 deletions(-) diff --git a/org.simantics.sysdyn.ontology/graph.tg b/org.simantics.sysdyn.ontology/graph.tg index fd8fe64a2e1bd93fdb157d02f38f55328b4280d2..ade5d8cbf32f0f47901e95ec2565fd30f8162ec5 100644 GIT binary patch literal 78675 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 diff --git a/org.simantics.sysdyn.ontology/graph/Sysdyn.pgraph b/org.simantics.sysdyn.ontology/graph/Sysdyn.pgraph index bcf3f6ac..969d00b6 100644 --- a/org.simantics.sysdyn.ontology/graph/Sysdyn.pgraph +++ b/org.simantics.sysdyn.ontology/graph/Sysdyn.pgraph @@ -30,27 +30,14 @@ SYSDYN.SharedModuleOntolofgy -- SYSDYN.SysdynModel.startTime --> L0.Double -- SYSDYN.SysdynModel.stopTime --> L0.Double -- SYSDYN.SysdynModel.outputInterval --> L0.Double -- SYSDYN.SysdynModel.tolerance --> L0.Double -- SYSDYN.SysdynModel.solver --> L0.String -- SYSDYN.Variable.type --> L0.String -- SYSDYN.Variable.expressions --> SYSDYN.Expressions -- SYSDYN.Variable.arrayIndexes --> SYSDYN.ArrayIndexes -- SYSDYN.Variable.unit --> L0.String -- SYSDYN.Variable.isTailOf --> STR.Connection -- SYSDYN.Variable.isHeadOf --> STR.Connection -- SYSDYN.IndependentVariable.unit --> L0.String -- SYSDYN.IndependentVariable.rangeStart --> L0.Double -- SYSDYN.IndependentVariable.rangeEnd --> L0.Double -- SYSDYN.IndependentVariable.rangeStep --> L0.Double -- SYSDYN.IndependentVariable.activeExpression --> SYSDYN.Expression -- SYSDYN.Input.defaultInputValue --> L0.Double -- SYSDYN.Enumeration.enumerationIndexes --> SYSDYN.EnumerationIndexes -- SYSDYN.Enumeration.isReplaceable --> L0.Boolean -- SYSDYN.Module.redeclaration --> SYSDYN.Redeclaration -- SYSDYN.Dependency.angle --> L0.Double -- SYSDYN.Dependency.refersTo --> SYSDYN.Variable -- SYSDYN.Expression.equation --> L0.String -- SYSDYN.Expression.arrayRange --> L0.String -- SYSDYN.DelayExpression.expression --> L0.String -- SYSDYN.DelayExpression.order --> L0.Integer -- SYSDYN.DelayExpression.delayTime --> L0.String -- SYSDYN.DelayExpression.initialValue --> L0.String -- SYSDYN.DelayExpression.expression --> L0.String -- SYSDYN.DelayExpression.order --> L0.Integer -- SYSDYN.DelayExpression.delayTime --> L0.String -- SYSDYN.DelayExpression.initialValue --> L0.String -- SYSDYN.StockExpression.initialEquation --> L0.String -- SYSDYN.LookupExpression.lookup --> L0.String -- SYSDYN.LookupExpression.lookup --> L0.String -- SYSDYN.WithLookupExpression.expression --> L0.String -- SYSDYN.WithLookupExpression.lookup --> L0.String -- SYSDYN.WithLookupExpression.expression --> L0.String -- SYSDYN.WithLookupExpression.lookup --> L0.String -- SYSDYN.WithLookupExpression.minX --> L0.Double -- SYSDYN.WithLookupExpression.maxX --> L0.Double -- SYSDYN.WithLookupExpression.minY --> L0.Double -- SYSDYN.WithLookupExpression.maxY --> L0.Double -- SYSDYN.EnumerationIndex.showEnumerationIndexInCharts --> L0.Boolean -- SYSDYN.Redeclaration.replacedEnumeration --> SYSDYN.Enumeration -- SYSDYN.Redeclaration.replacingEnumeration --> SYSDYN.Enumeration -- SYSDYN.SysdynModelicaFunction.modelicaFunctionCode --> L0.String -- SYSDYN.ExternalFunctionFile.externalFile --> L0.ByteArray -- SYSDYN.Experiment.result --> SYSDYN.Result -- SYSDYN.Result.parameterFile --> L0.String -- SYSDYN.Result.resultFile --> L0.String -- SYSDYN.Result.showResult --> SYSDYN.Result -- SYSDYN.ValveSymbol.orientation --> SYSDYN.Orientation -- SYSDYN.ValveSymbol.textLocation --> SYSDYN.Location -- SYSDYN.DependencyConnection.polarity --> L0.String -- SYSDYN.DependencyConnection.polarityLocation --> L0.String : SYSDYN.SysdynMod FL.xidz : SYSDYN.SysdynModelicaFunction L0.HasDescription "X if divided by zero" - SYSDYN.HasModelicaFunctionCode """ input Real a; + SYSDYN.SysdynModelicaFunction.modelicaFunctionCode """ input Real a; input Real b; input Real x; output Real z; @@ -19,7 +19,7 @@ algorithm FL.zidz : SYSDYN.SysdynModelicaFunction L0.HasDescription "Zero if divided by zero" - SYSDYN.HasModelicaFunctionCode """ input Real a; + SYSDYN.SysdynModelicaFunction.modelicaFunctionCode """ input Real a; input Real b; output Real z; algorithm @@ -27,7 +27,7 @@ algorithm FL.interpolate : SYSDYN.SysdynModelicaFunction L0.HasDescription "Interpolate function for two-dimensional table" - SYSDYN.HasModelicaFunctionCode """ input Real u "input value (first column of table)"; + SYSDYN.SysdynModelicaFunction.modelicaFunctionCode """ input Real u "input value (first column of table)"; input Real table[:, :] "table to be interpolated"; output Real y "interpolated input value (icol column of table)"; algorithm @@ -36,7 +36,7 @@ algorithm FL.interpolateFull : SYSDYN.SysdynModelicaFunction L0.HasDescription "The full interpolate function" - SYSDYN.HasModelicaFunctionCode """ input Real u "input value (first column of table)"; + SYSDYN.SysdynModelicaFunction.modelicaFunctionCode """ input Real u "input value (first column of table)"; input Real table[:, :] "table to be interpolated"; input Integer icol "column of table to be interpolated"; output Real y "interpolated input value (icol column of table)"; diff --git a/org.simantics.sysdyn.ontology/graph/VensimFunctions.pgraph b/org.simantics.sysdyn.ontology/graph/VensimFunctions.pgraph index 08e4cc5a..ee392f50 100644 --- a/org.simantics.sysdyn.ontology/graph/VensimFunctions.pgraph +++ b/org.simantics.sysdyn.ontology/graph/VensimFunctions.pgraph @@ -9,7 +9,7 @@ VF.DELAYFIXED : SYSDYN.SysdynModelicaFunction L0.HasDescription """DELAY FIXED( inputVar , dtime , init ) -> delay(inputVar, dtime) init -value is ignored.""" - SYSDYN.HasModelicaFunctionCode """ input Real inputVar; + SYSDYN.SysdynModelicaFunction.modelicaFunctionCode """ input Real inputVar; input Real dtime; input Real init; input Real t = time; @@ -23,7 +23,7 @@ algorithm VF.IFTHENELSE : SYSDYN.SysdynModelicaFunction L0.HasDescription """IF THEN ELSE( cond , ontrue , onfalse ) -> if cond then ontrue else onfalse""" - SYSDYN.HasModelicaFunctionCode """ input Boolean cond; + SYSDYN.SysdynModelicaFunction.modelicaFunctionCode """ input Boolean cond; input Real ontrue; input Real onfalse; output Real z; @@ -33,7 +33,7 @@ algorithm VF.MAX : SYSDYN.SysdynModelicaFunction L0.HasDescription """MAX(a, b) Returns the larger of a and b.""" - SYSDYN.HasModelicaFunctionCode """ input Real a; + SYSDYN.SysdynModelicaFunction.modelicaFunctionCode """ input Real a; input Real b; output Real z; algorithm @@ -42,7 +42,7 @@ algorithm VF.MIN : SYSDYN.SysdynModelicaFunction L0.HasDescription """MIN(a, b) Returns the smaller of a and b.""" - SYSDYN.HasModelicaFunctionCode """ input Real a; + SYSDYN.SysdynModelicaFunction.modelicaFunctionCode """ input Real a; input Real b; output Real z; algorithm @@ -51,7 +51,7 @@ algorithm VF.XIDZ : SYSDYN.SysdynModelicaFunction L0.HasDescription """XIDZ(a, b, x) x if divided by zero, a/b otherwise.""" - SYSDYN.HasModelicaFunctionCode """ input Real a; + SYSDYN.SysdynModelicaFunction.modelicaFunctionCode """ input Real a; input Real b; input Real x; output Real z; @@ -61,7 +61,7 @@ algorithm VF.ZIDZ : SYSDYN.SysdynModelicaFunction L0.HasDescription """XIDZ(a, b) Zero if divided by zero, a/b otherwise.""" - SYSDYN.HasModelicaFunctionCode """ input Real a; + SYSDYN.SysdynModelicaFunction.modelicaFunctionCode """ input Real a; input Real b; output Real z; algorithm @@ -70,7 +70,7 @@ algorithm VF.ABS : SYSDYN.SysdynModelicaFunction L0.HasDescription """ABS(x) Returns the absolute value of x.""" - SYSDYN.HasModelicaFunctionCode """ input Real x; + SYSDYN.SysdynModelicaFunction.modelicaFunctionCode """ input Real x; output Real z; algorithm z := abs(x);""" @@ -78,7 +78,7 @@ algorithm VF.SQRT : SYSDYN.SysdynModelicaFunction L0.HasDescription """SQRT(x) Returns the square root of x.""" - SYSDYN.HasModelicaFunctionCode """ input Real x; + SYSDYN.SysdynModelicaFunction.modelicaFunctionCode """ input Real x; output Real z; algorithm z := sqrt(x);""" @@ -86,7 +86,7 @@ algorithm VF.MODULO : SYSDYN.SysdynModelicaFunction L0.HasDescription """MODULO(a, b) Returns the remainder when a is divided by b. """ - SYSDYN.HasModelicaFunctionCode """ input Real a; + SYSDYN.SysdynModelicaFunction.modelicaFunctionCode """ input Real a; input Real b; output Real z; algorithm @@ -95,7 +95,7 @@ algorithm VF.PULSE : SYSDYN.SysdynModelicaFunction L0.HasDescription """PULSE(start, width) Returns 1.0 starting at time start and lasting for interval width. 0.0 is returned at other times.""" - SYSDYN.HasModelicaFunctionCode """ input Real start; + SYSDYN.SysdynModelicaFunction.modelicaFunctionCode """ input Real start; input Real width; input Real t = time; output Real z; @@ -105,7 +105,7 @@ algorithm VF.RAMP : SYSDYN.SysdynModelicaFunction L0.HasDescription """RAMP(slope, startTime, endTime) Returns 0 until the start time and then slopes upward until end time and then holds constant.""" - SYSDYN.HasModelicaFunctionCode """ input Real slope; + SYSDYN.SysdynModelicaFunction.modelicaFunctionCode """ input Real slope; input Real startTime; input Real endTime; input Real t = time; @@ -123,7 +123,7 @@ algorithm VF.STEP : SYSDYN.SysdynModelicaFunction L0.HasDescription """STEP(height, stepTime) Returns 0.0 until the step time and then returns height.""" - SYSDYN.HasModelicaFunctionCode """ input Real height; + SYSDYN.SysdynModelicaFunction.modelicaFunctionCode """ input Real height; input Real stepTime; input Real t = time; output Real z; @@ -135,7 +135,7 @@ algorithm VF.EXP : SYSDYN.SysdynModelicaFunction L0.HasDescription """ """ - SYSDYN.HasModelicaFunctionCode """ input Real x; + SYSDYN.SysdynModelicaFunction.modelicaFunctionCode """ input Real x; output Real z; algorithm z := exp(x);""" @@ -143,7 +143,7 @@ algorithm VF.SIN : SYSDYN.SysdynModelicaFunction L0.HasDescription """SIN(x) Returns the sine of x.""" - SYSDYN.HasModelicaFunctionCode """ input Real x; + SYSDYN.SysdynModelicaFunction.modelicaFunctionCode """ input Real x; output Real z; algorithm z := sin(x);""" @@ -151,7 +151,7 @@ algorithm VF.SINH : SYSDYN.SysdynModelicaFunction L0.HasDescription """SINH(x) Returns the hyperbolic sine of x.""" - SYSDYN.HasModelicaFunctionCode """ input Real x; + SYSDYN.SysdynModelicaFunction.modelicaFunctionCode """ input Real x; output Real z; algorithm z := sinh(x);""" @@ -159,7 +159,7 @@ algorithm VF.COS : SYSDYN.SysdynModelicaFunction L0.HasDescription """COS(x) Returns the cosine of x.""" - SYSDYN.HasModelicaFunctionCode """ input Real x; + SYSDYN.SysdynModelicaFunction.modelicaFunctionCode """ input Real x; output Real z; algorithm z := cos(x);""" @@ -167,7 +167,7 @@ algorithm VF.COSH : SYSDYN.SysdynModelicaFunction L0.HasDescription """COSH(x) Returns the hyperbolic cosine of x.""" - SYSDYN.HasModelicaFunctionCode """ input Real x; + SYSDYN.SysdynModelicaFunction.modelicaFunctionCode """ input Real x; output Real z; algorithm z := cosh(x);""" @@ -175,7 +175,7 @@ algorithm VF.TAN : SYSDYN.SysdynModelicaFunction L0.HasDescription """TAN(x) Returns the tangent of x.""" - SYSDYN.HasModelicaFunctionCode """ input Real x; + SYSDYN.SysdynModelicaFunction.modelicaFunctionCode """ input Real x; output Real z; algorithm z := tan(x);""" @@ -183,7 +183,7 @@ algorithm VF.TANH : SYSDYN.SysdynModelicaFunction L0.HasDescription """TANH(x) Returns the hyperbolic tangent of x.""" - SYSDYN.HasModelicaFunctionCode """ input Real x; + SYSDYN.SysdynModelicaFunction.modelicaFunctionCode """ input Real x; output Real z; algorithm z := tanh(x);""" @@ -192,7 +192,7 @@ VF.LN : SYSDYN.SysdynModelicaFunction L0.HasDescription """LN(x) Returns the natural logarithm of x. In modelica log(x) is the natural logarighm and log10(x) is base 10 logarighm.""" - SYSDYN.HasModelicaFunctionCode """ input Real x; + SYSDYN.SysdynModelicaFunction.modelicaFunctionCode """ input Real x; output Real z; algorithm z := log(x);""" diff --git a/org.simantics.sysdyn.ontology/graph/WorkModel.pgraph b/org.simantics.sysdyn.ontology/graph/WorkModel.pgraph index f3888910..aa22c018 100644 --- a/org.simantics.sysdyn.ontology/graph/WorkModel.pgraph +++ b/org.simantics.sysdyn.ontology/graph/WorkModel.pgraph @@ -30,7 +30,7 @@ WM.dependency : L0.Template @L0.tag TAGS.AdminIsVisible @L0.tag TAGS.AdminIsFocusable STR.HasConnectionType SYSDYN.SysdynConnectionType - SYSDYN.angle %angle + SYSDYN.Dependency.angle %angle DIA.HasArrowConnector _ : DIA.Connector SYSDYN.HasHeadTerminal %head DIA.AreConnected _ : DIA.Connector @@ -62,7 +62,7 @@ WM.conf_dependency_ref : L0.Template @L0.tag MOD.Mapped SYSDYN.HasHead %head SYSDYN.HasTail %tail - SYSDYN.RefersTo %ref + SYSDYN.Dependency.refersTo %ref @@ -87,8 +87,8 @@ WM.WorkforceSymbol { public Collection getContribution(ReadGraph graph, ExperimentNode experiment) throws DatabaseException { ArrayList> result = new ArrayList>(); SysdynResource sr = SysdynResource.getInstance(graph); - for(final Resource r : graph.syncRequest(new ObjectsWithType(experiment.data, sr.HasResult, sr.Result))) { - String resultPath = (String)graph.getPossibleRelatedValue(r, sr.HasResultFile); + for(final Resource r : graph.syncRequest(new ObjectsWithType(experiment.data, sr.Experiment_result, sr.Result))) { + String resultPath = (String)graph.getPossibleRelatedValue(r, sr.Result_resultFile); File file = new File(resultPath); if(file.exists()) { try { @@ -50,7 +50,7 @@ public class SimulationResult extends ViewpointContributor { public void perform(WriteGraph graph) throws DatabaseException { Layer0 l0 = Layer0.getInstance(graph); graph.deny(r, l0.PartOf); - graph.deny(r, graph.getInverse(SysdynResource.getInstance(graph).HasResult)); + graph.deny(r, graph.getInverse(SysdynResource.getInstance(graph).Experiment_result)); } }); diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/browser/contributions/SimulationResultDecorator.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/browser/contributions/SimulationResultDecorator.java index c35120a3..f3abbfa7 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/browser/contributions/SimulationResultDecorator.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/browser/contributions/SimulationResultDecorator.java @@ -24,7 +24,7 @@ public class SimulationResultDecorator extends LabelDecoratorContributor implements IDeletabl @Override public void perform(WriteGraph graph) throws DatabaseException, CancelTransactionException { SysdynResource sr = SysdynResource.getInstance(graph); - for(Resource redeclaration : graph.getObjects(data, sr.ReplacedEnumeration_Inverse)) { - graph.deny(redeclaration, sr.HasRedeclaration_Inverse); + for(Resource redeclaration : graph.getObjects(data, sr.Redeclaration_replacedEnumeration_Inverse)) { + graph.deny(redeclaration, sr.Module_redeclaration_Inverse); } - for(Resource redeclaration : graph.getObjects(data, sr.ReplacingEnumeration_Inverse)) { - graph.deny(redeclaration, sr.HasRedeclaration_Inverse); + for(Resource redeclaration : graph.getObjects(data, sr.Redeclaration_replacingEnumeration_Inverse)) { + graph.deny(redeclaration, sr.Module_redeclaration_Inverse); } for(Resource list : OrderedSetUtils.getOwnerLists(graph, data, sr.ArrayIndexes)) { diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/browser/nodes/ExperimentNode.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/browser/nodes/ExperimentNode.java index 9bc33413..d272900f 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/browser/nodes/ExperimentNode.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/browser/nodes/ExperimentNode.java @@ -73,7 +73,7 @@ public class ExperimentNode extends AbstractNode implements IDoubleCli SimanticsUI.getSession().syncRequest(new WriteRequest() { @Override public void perform(WriteGraph graph) throws DatabaseException, CancelTransactionException { - Collection results = graph.getObjects(data, SysdynResource.getInstance(graph).HasResult); + Collection results = graph.getObjects(data, SysdynResource.getInstance(graph).Experiment_result); if(results != null) for(Resource result : results) SimulationResultNode.unlinkResult(graph, result); diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/browser/nodes/SimulationResultNode.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/browser/nodes/SimulationResultNode.java index d21f18b1..768b591e 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/browser/nodes/SimulationResultNode.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/browser/nodes/SimulationResultNode.java @@ -75,7 +75,7 @@ public class SimulationResultNode extends AbstractNode implements IDo public static void deleteResultFiles(WriteGraph graph, Resource result) throws DatabaseException { String path; - path = graph.getPossibleRelatedValue(result, SysdynResource.getInstance(graph).HasResultFile); + path = graph.getPossibleRelatedValue(result, SysdynResource.getInstance(graph).Result_resultFile); if(path != null) { File file = new File(path); file.delete(); diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/dependencies/CreateDependencyGraph.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/dependencies/CreateDependencyGraph.java index b48de97d..586117b0 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/dependencies/CreateDependencyGraph.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/dependencies/CreateDependencyGraph.java @@ -117,12 +117,12 @@ public class CreateDependencyGraph implements Read { Collection dependants; if(isInverted) - dependants = getDependants(g, graph, r, sr.IsTailOf, sr.HasHead, sr.Dependency); + dependants = getDependants(g, graph, r, sr.Variable_isTailOf, sr.HasHead, sr.Dependency); else { - dependants = getDependants(g, graph, r, sr.IsHeadOf, sr.HasTail, sr.Dependency); + dependants = getDependants(g, graph, r, sr.Variable_isHeadOf, sr.HasTail, sr.Dependency); if (g.isInstanceOf(r, sr.Stock)) { - dependants.addAll(getDependants(g, graph, r, sr.IsTailOf, sr.HasHead, sr.Flow)); - dependants.addAll(getDependants(g, graph, r, sr.IsHeadOf, sr.HasTail, sr.Flow)); + dependants.addAll(getDependants(g, graph, r, sr.Variable_isTailOf, sr.HasHead, sr.Flow)); + dependants.addAll(getDependants(g, graph, r, sr.Variable_isHeadOf, sr.HasTail, sr.Flow)); } } diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/elements2/InputFactory.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/elements2/InputFactory.java index f3151bd9..58021f22 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/elements2/InputFactory.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/elements2/InputFactory.java @@ -114,9 +114,9 @@ public class InputFactory extends SysdynElementFactory { String referenceName = ""; component = graph.getPossibleObject(element, mr.ElementToComponent); if(component != null) - dependency = graph.getPossibleObject(component, sr.IsHeadOf); + dependency = graph.getPossibleObject(component, sr.Variable_isHeadOf); if(dependency != null) { - refersTo = graph.getPossibleObject(dependency, sr.RefersTo); + refersTo = graph.getPossibleObject(dependency, sr.Dependency_refersTo); if(refersTo != null) { referenceName = (String) graph.getPossibleRelatedValue(refersTo, l0.HasName); module = graph.getPossibleObject(dependency, sr.HasTail); @@ -136,8 +136,8 @@ public class InputFactory extends SysdynElementFactory { module = ((ChildVariable)v).getRepresents(graph); } if(module != null) - for(Resource dep : graph.getObjects(module, sr.IsHeadOf)) { - Resource reference = graph.getPossibleObject(dep, sr.RefersTo); + for(Resource dep : graph.getObjects(module, sr.Variable_isHeadOf)) { + Resource reference = graph.getPossibleObject(dep, sr.Dependency_refersTo); if(reference!= null && reference.equals(component)) { refersTo = graph.getSingleObject(dep, sr.HasTail); referenceName = (String) graph.getPossibleRelatedValue(refersTo, l0.HasName); diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/elements2/ValveFactory.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/elements2/ValveFactory.java index 28314a22..50642b2e 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/elements2/ValveFactory.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/elements2/ValveFactory.java @@ -94,7 +94,7 @@ public class ValveFactory extends SysdynElementFactory { SysdynResource sr = SysdynResource.getInstance(graph); - Resource orientation = graph.getPossibleObject(element, sr.HasValveOrientation); + Resource orientation = graph.getPossibleObject(element, sr.ValveSymbol_orientation); String orientationText; if(orientation != null && sr.Vertical.equals(orientation)) { @@ -104,7 +104,7 @@ public class ValveFactory extends SysdynElementFactory { } SysdynElementUtils.setOrientation(e, orientationText); - Resource location = graph.getPossibleObject(element, sr.HasTextLocation); + Resource location = graph.getPossibleObject(element, sr.ValveSymbol_textLocation); String locationText; if(location == null || sr.Bottom.equals(location)) { locationText = "Bottom"; diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/elements2/connections/RouteFlowConnectionFactory.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/elements2/connections/RouteFlowConnectionFactory.java index 9a2691f2..70d1ad55 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/elements2/connections/RouteFlowConnectionFactory.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/elements2/connections/RouteFlowConnectionFactory.java @@ -252,7 +252,7 @@ public class RouteFlowConnectionFactory extends SyncElementFactory { // Valve behaves differently. Allowed directions depend on the orientation of the valve if(te.getElementClass().containsClass(ValveSceneGraph.class)) { SysdynResource sr = SysdynResource.getInstance(graph); - if(graph.hasStatement(terminalElement, sr.HasValveOrientation, sr.Vertical)) { + if(graph.hasStatement(terminalElement, sr.ValveSymbol_orientation, sr.Vertical)) { allowedDirections = 10; // Directions up and down (1010) } else { allowedDirections = 5; // Directions left and right (0101) diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/handlers/ToggleResultActivation.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/handlers/ToggleResultActivation.java index 5eaa2d73..024c6cbc 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/handlers/ToggleResultActivation.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/handlers/ToggleResultActivation.java @@ -47,10 +47,10 @@ public class ToggleResultActivation extends AbstractHandler { SysdynResource sr = SysdynResource.getInstance(graph); for(Resource r : resources) { if(graph.isInstanceOf(r, sr.Result)) { - if (graph.hasStatement(r, sr.ShowResult)) { - graph.denyStatement(r, sr.ShowResult, r); + if (graph.hasStatement(r, sr.Result_showResult)) { + graph.denyStatement(r, sr.Result_showResult, r); } else { - graph.claim(r, sr.ShowResult, r); + graph.claim(r, sr.Result_showResult, r); } } } diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/handlers/exports/ExportExternalFunctionFilesHandler.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/handlers/exports/ExportExternalFunctionFilesHandler.java index 53b012c5..fe9d1934 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/handlers/exports/ExportExternalFunctionFilesHandler.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/handlers/exports/ExportExternalFunctionFilesHandler.java @@ -81,7 +81,7 @@ public class ExportExternalFunctionFilesHandler extends AbstractHandler { try { String name = NameUtils.getSafeName(graph, r); FileOutputStream fos = new FileOutputStream(dir + "\\" + name); - byte[] fileBArray = graph.getPossibleRelatedValue(r, sr.HasExternalFile, Bindings.BYTE_ARRAY); + byte[] fileBArray = graph.getPossibleRelatedValue(r, sr.ExternalFunctionFile_externalFile, Bindings.BYTE_ARRAY); fos.write(fileBArray); fos.close(); } catch (IOException e) { diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/handlers/exports/ExportModuleHandler.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/handlers/exports/ExportModuleHandler.java index ab804371..7b12325e 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/handlers/exports/ExportModuleHandler.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/handlers/exports/ExportModuleHandler.java @@ -235,21 +235,21 @@ public class ExportModuleHandler extends AbstractHandler { ArrayList> replacements = new ArrayList>(); for(Resource enumeration : graph.syncRequest(new ObjectsWithType(configuration, l0.ConsistsOf, sr.Enumeration))) { - if(graph.hasStatement(enumeration, sr.ReplacedEnumeration_Inverse)) { - for(Resource replacement : graph.getObjects(enumeration, sr.ReplacedEnumeration_Inverse)) { + if(graph.hasStatement(enumeration, sr.Redeclaration_replacedEnumeration_Inverse)) { + for(Resource replacement : graph.getObjects(enumeration, sr.Redeclaration_replacedEnumeration_Inverse)) { replacements.add(new Pair(enumeration, replacement)); } } } for(Pair replacement : replacements) - graph.deny(replacement.first, sr.ReplacedEnumeration_Inverse, replacement.second); + graph.deny(replacement.first, sr.Redeclaration_replacedEnumeration_Inverse, replacement.second); TransferableGraph1 tg = graph.syncRequest(new TransferableGraphRequest2(roots, component)); Files.createFile(new File(path), Bindings.getBindingUnchecked(TransferableGraph1.class), tg); for(Pair replacement : replacements) - graph.claim(replacement.first, sr.ReplacedEnumeration_Inverse, replacement.second); + graph.claim(replacement.first, sr.Redeclaration_replacedEnumeration_Inverse, replacement.second); } catch (RuntimeBindingConstructionException e) { e.printStackTrace(); diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/handlers/imports/ImportExternalFunctionFilesHandler.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/handlers/imports/ImportExternalFunctionFilesHandler.java index f0052c6d..05b63a2b 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/handlers/imports/ImportExternalFunctionFilesHandler.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/handlers/imports/ImportExternalFunctionFilesHandler.java @@ -108,7 +108,7 @@ public class ImportExternalFunctionFilesHandler extends AbstractHandler { byte[] fileBArray = new byte[(int)file.length()]; FileInputStream fis = new FileInputStream(file); fis.read(fileBArray); - graph.claimLiteral(externalFile, sr.HasExternalFile, fileBArray, Bindings.BYTE_ARRAY); + graph.claimLiteral(externalFile, sr.ExternalFunctionFile_externalFile, fileBArray, Bindings.BYTE_ARRAY); FunctionUtils.createExternalFunctionFile(graph, externalFile); } catch (IOException e) { diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/handlers/newComponents/NewEnumerationNodeHandler.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/handlers/newComponents/NewEnumerationNodeHandler.java index fbd774ff..e0e60a14 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/handlers/newComponents/NewEnumerationNodeHandler.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/handlers/newComponents/NewEnumerationNodeHandler.java @@ -76,7 +76,7 @@ public class NewEnumerationNodeHandler extends AbstractHandler { GraphUtils.create2(g, sr.Enumeration, l0.HasName, name, - sr.HasEnumerationIndexes, enumerationIndexes, + sr.Enumeration_enumerationIndexes, enumerationIndexes, l0.PartOf, configuration); } }); diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/handlers/newComponents/NewFunctionHandler.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/handlers/newComponents/NewFunctionHandler.java index a9a970db..1cf45f03 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/handlers/newComponents/NewFunctionHandler.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/handlers/newComponents/NewFunctionHandler.java @@ -75,7 +75,7 @@ public class NewFunctionHandler extends AbstractHandler { GraphUtils.create2(g, sr.SysdynModelicaFunction, l0.HasName, name, l0.HasDescription, "", - sr.HasModelicaFunctionCode, "", + sr.SysdynModelicaFunction_modelicaFunctionCode, "", l0.PartOf, library); FunctionUtils.updateFunctionFileForLibrary(g, library); diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/menu/PlaybackSliderContribution.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/menu/PlaybackSliderContribution.java index f16927eb..aae0b0ef 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/menu/PlaybackSliderContribution.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/menu/PlaybackSliderContribution.java @@ -69,9 +69,9 @@ public class PlaybackSliderContribution extends ToolBarContributionItem { Double[] numbers = new Double[3]; Resource model = spe.getModel(); SysdynResource sr = SysdynResource.getInstance(graph); - numbers[0] = graph.getRelatedValue(model, sr.HasStartTime); - numbers[1] = graph.getRelatedValue(model, sr.HasStopTime); - numbers[2] = graph.getPossibleRelatedValue(model, sr.HasOutputInterval); + numbers[0] = graph.getRelatedValue(model, sr.SysdynModel_startTime); + numbers[1] = graph.getRelatedValue(model, sr.SysdynModel_stopTime); + numbers[2] = graph.getPossibleRelatedValue(model, sr.SysdynModel_outputInterval); return numbers; } }); diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/project/SysdynProject.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/project/SysdynProject.java index fb9fff65..d871355a 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/project/SysdynProject.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/project/SysdynProject.java @@ -232,8 +232,8 @@ public class SysdynProject extends AbstractProjectFeature { if(graph.isInstanceOf(model, sr.SysdynModel)){ for(Resource experiment : graph.getObjects(model, l0.ConsistsOf)) { if(graph.isInstanceOf(experiment, SIMU.Experiment)) { - for(Resource result : graph.getObjects(experiment, sr.HasResult)) { - String resultFile = (String)graph.getPossibleRelatedValue(result, sr.HasResultFile); + for(Resource result : graph.getObjects(experiment, sr.Experiment_result)) { + String resultFile = (String)graph.getPossibleRelatedValue(result, sr.Result_resultFile); if(result != null) resultPaths.put(resultFile, result); } } @@ -272,7 +272,7 @@ public class SysdynProject extends AbstractProjectFeature { for(String key : resultPaths.keySet()) { Resource result = resultPaths.get(key); graph.deny(result, l0.PartOf); - graph.deny(result, graph.getInverse(SysdynResource.getInstance(graph).HasResult)); + graph.deny(result, graph.getInverse(SysdynResource.getInstance(graph).Experiment_result)); } } }) ; diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/ArrayIndexesTab.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/ArrayIndexesTab.java index 0939900e..004b8c1d 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/ArrayIndexesTab.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/ArrayIndexesTab.java @@ -83,10 +83,10 @@ public class ArrayIndexesTab extends LabelPropertyTabContributor implements Widg public void apply(WriteGraph graph, Resource input) throws DatabaseException { SysdynResource sr = SysdynResource.getInstance(graph); - Resource arrayIndexes = graph.getPossibleObject(input, sr.HasArrayIndexes); + Resource arrayIndexes = graph.getPossibleObject(input, sr.Variable_arrayIndexes); if(arrayIndexes == null) { arrayIndexes = OrderedSetUtils.create(graph, sr.ArrayIndexes); - graph.claim(input, sr.HasArrayIndexes, arrayIndexes); + graph.claim(input, sr.Variable_arrayIndexes, arrayIndexes); } OrderedSetUtils.addAll(graph, arrayIndexes, enumerationResources); } @@ -135,7 +135,7 @@ public class ArrayIndexesTab extends LabelPropertyTabContributor implements Widg throws DatabaseException { if(enumerationResources != null && enumerationResources.size() == 1) { SysdynResource sr = SysdynResource.getInstance(graph); - Resource arrayIndexes = graph.getPossibleObject(input, sr.HasArrayIndexes); + Resource arrayIndexes = graph.getPossibleObject(input, sr.Variable_arrayIndexes); if(arrayIndexes == null) return; @@ -167,7 +167,7 @@ public class ArrayIndexesTab extends LabelPropertyTabContributor implements Widg throws DatabaseException { if(enumerationResources != null && enumerationResources.size() == 1) { SysdynResource sr = SysdynResource.getInstance(graph); - Resource arrayIndexes = graph.getPossibleObject(input, sr.HasArrayIndexes); + Resource arrayIndexes = graph.getPossibleObject(input, sr.Variable_arrayIndexes); if(arrayIndexes == null) return; Resource enumeration = enumerationResources.get(0); @@ -197,7 +197,7 @@ public class ArrayIndexesTab extends LabelPropertyTabContributor implements Widg throws DatabaseException { if(enumerationResources != null && enumerationResources.size() == 1) { SysdynResource sr = SysdynResource.getInstance(graph); - Resource arrayIndexes = graph.getPossibleObject(input, sr.HasArrayIndexes); + Resource arrayIndexes = graph.getPossibleObject(input, sr.Variable_arrayIndexes); if(arrayIndexes == null) return; diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/ConfigurationTab.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/ConfigurationTab.java index 8ad18ac6..a67546b1 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/ConfigurationTab.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/ConfigurationTab.java @@ -86,8 +86,8 @@ public class ConfigurationTab extends LabelPropertyTabContributor { label.setText("Start time"); TrackedText startTime = new TrackedText(composite, support, SWT.BORDER | SWT.RIGHT); - startTime.setTextFactory(new DoublePropertyFactory(SysdynResource.URIs.HasStartTime)); - startTime.addModifyListener(new DoublePropertyModifier(context, SysdynResource.URIs.HasStartTime)); + startTime.setTextFactory(new DoublePropertyFactory(SysdynResource.URIs.SysdynModel_startTime)); + startTime.addModifyListener(new DoublePropertyModifier(context, SysdynResource.URIs.SysdynModel_startTime)); startTime.setInputValidator(new DoubleValidator()); GridDataFactory.fillDefaults().hint(200, SWT.DEFAULT).applyTo(startTime.getWidget()); @@ -95,8 +95,8 @@ public class ConfigurationTab extends LabelPropertyTabContributor { label.setText("Stop time"); TrackedText stopTime = new TrackedText(composite, support, SWT.BORDER | SWT.RIGHT); - stopTime.setTextFactory(new DoublePropertyFactory(SysdynResource.URIs.HasStopTime)); - stopTime.addModifyListener(new DoublePropertyModifier(context, SysdynResource.URIs.HasStopTime)); + stopTime.setTextFactory(new DoublePropertyFactory(SysdynResource.URIs.SysdynModel_stopTime)); + stopTime.addModifyListener(new DoublePropertyModifier(context, SysdynResource.URIs.SysdynModel_stopTime)); stopTime.setInputValidator(new DoubleValidator()); GridDataFactory.fillDefaults().hint(200, SWT.DEFAULT).applyTo(stopTime.getWidget()); @@ -104,8 +104,8 @@ public class ConfigurationTab extends LabelPropertyTabContributor { label.setText("Step length\n(empty = default)"); TrackedText outputInterval = new TrackedText(composite, support, SWT.BORDER | SWT.RIGHT); - outputInterval.setTextFactory(new DoublePropertyFactory(SysdynResource.URIs.HasOutputInterval)); - outputInterval.addModifyListener(new DoublePropertyModifier(context, SysdynResource.URIs.HasOutputInterval)); + outputInterval.setTextFactory(new DoublePropertyFactory(SysdynResource.URIs.SysdynModel_outputInterval)); + outputInterval.addModifyListener(new DoublePropertyModifier(context, SysdynResource.URIs.SysdynModel_outputInterval)); outputInterval.setInputValidator(new DoubleValidator()); GridDataFactory.fillDefaults().hint(200, SWT.DEFAULT).applyTo(outputInterval.getWidget()); @@ -133,7 +133,7 @@ public class ConfigurationTab extends LabelPropertyTabContributor { @Override public String perform(ReadGraph graph, final Resource input) throws DatabaseException { - String s = graph.getPossibleRelatedValue(input, SysdynResource.getInstance(graph).HasSolver); + String s = graph.getPossibleRelatedValue(input, SysdynResource.getInstance(graph).SysdynModel_solver); return s != null ? s : ""; } }); @@ -143,7 +143,7 @@ public class ConfigurationTab extends LabelPropertyTabContributor { @Override public void applyText(WriteGraph graph, Resource input, String text) throws DatabaseException { - graph.claimLiteral(input, SysdynResource.getInstance(graph).HasSolver, text); + graph.claimLiteral(input, SysdynResource.getInstance(graph).SysdynModel_solver, text); } }); @@ -151,8 +151,8 @@ public class ConfigurationTab extends LabelPropertyTabContributor { label.setText("Tolerance"); TrackedText tolerance = new TrackedText(composite, support, SWT.BORDER | SWT.RIGHT); - tolerance.setTextFactory(new DoublePropertyFactory(SysdynResource.URIs.HasTolerance)); - tolerance.addModifyListener(new DoublePropertyModifier(context, SysdynResource.URIs.HasTolerance)); + tolerance.setTextFactory(new DoublePropertyFactory(SysdynResource.URIs.SysdynModel_tolerance)); + tolerance.addModifyListener(new DoublePropertyModifier(context, SysdynResource.URIs.SysdynModel_tolerance)); tolerance.setInputValidator(new DoubleValidator()); GridDataFactory.fillDefaults().hint(200, SWT.DEFAULT).applyTo(tolerance.getWidget()); diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/DependencyTab.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/DependencyTab.java index a57da158..7ebec21a 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/DependencyTab.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/DependencyTab.java @@ -72,8 +72,8 @@ public class DependencyTab extends LabelPropertyTabContributor { other.setSelectionFactory(new OtherPolaritySelectionFactory(new String[] {null, "+", "-", ""})); polarityText = new TrackedText(polarityGroup, support, SWT.BORDER); - polarityText.setTextFactory(new StringPropertyFactory(SysdynResource.URIs.Polarity)); - polarityText.addModifyListener(new StringPropertyModifier(context, SysdynResource.URIs.Polarity)); + polarityText.setTextFactory(new StringPropertyFactory(SysdynResource.URIs.DependencyConnection_polarity)); + polarityText.addModifyListener(new StringPropertyModifier(context, SysdynResource.URIs.DependencyConnection_polarity)); GridDataFactory.fillDefaults().grab(true, false).applyTo(polarityText.getWidget()); Group locationGroup = new Group(composite, SWT.NONE); @@ -103,7 +103,7 @@ public class DependencyTab extends LabelPropertyTabContributor { @Override public void apply(WriteGraph graph, Resource connectionElement) throws DatabaseException { SysdynResource sr = SysdynResource.getInstance(graph); - graph.claimLiteral(connectionElement, sr.PolarityLocation, location); + graph.claimLiteral(connectionElement, sr.DependencyConnection_polarityLocation, location); } } @@ -123,7 +123,7 @@ public class DependencyTab extends LabelPropertyTabContributor { @Override public Boolean perform(ReadGraph graph, Resource dependencyConnection) throws DatabaseException { SysdynResource sr = SysdynResource.getInstance(graph); - String location = graph.getPossibleRelatedValue(dependencyConnection, sr.PolarityLocation, Bindings.STRING); + String location = graph.getPossibleRelatedValue(dependencyConnection, sr.DependencyConnection_polarityLocation, Bindings.STRING); if(DependencyNode.OUTSIDE.equals(this.location)) { return ObjectUtils.objectEquals(this.location, location); } else { @@ -146,7 +146,7 @@ public class DependencyTab extends LabelPropertyTabContributor { @Override public void apply(WriteGraph graph, Resource connectionElement) throws DatabaseException { SysdynResource sr = SysdynResource.getInstance(graph); - graph.claimLiteral(connectionElement, sr.Polarity, polarity.trim()); + graph.claimLiteral(connectionElement, sr.DependencyConnection_polarity, polarity.trim()); } } @@ -166,7 +166,7 @@ public class DependencyTab extends LabelPropertyTabContributor { @Override public Boolean perform(ReadGraph graph, Resource dependencyConnection) throws DatabaseException { SysdynResource sr = SysdynResource.getInstance(graph); - String polarity = graph.getPossibleRelatedValue(dependencyConnection, sr.Polarity, Bindings.STRING); + String polarity = graph.getPossibleRelatedValue(dependencyConnection, sr.DependencyConnection_polarity, Bindings.STRING); if(polarity == null && this.polarity.equals("")) return true; return ObjectUtils.objectEquals(polarity, this.polarity); @@ -189,7 +189,7 @@ public class DependencyTab extends LabelPropertyTabContributor { @Override public Boolean perform(ReadGraph graph, Resource dependencyConnection) throws DatabaseException { SysdynResource sr = SysdynResource.getInstance(graph); - String polarity = graph.getPossibleRelatedValue(dependencyConnection, sr.Polarity, Bindings.STRING); + String polarity = graph.getPossibleRelatedValue(dependencyConnection, sr.DependencyConnection_polarity, Bindings.STRING); for(String s : limits) { if(ObjectUtils.objectEquals(polarity, s)) return false; diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/EnumerationTab.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/EnumerationTab.java index b0ceb8a0..08be0f8b 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/EnumerationTab.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/EnumerationTab.java @@ -160,7 +160,7 @@ public class EnumerationTab extends LabelPropertyTabContributor implements Widge @Override public void run(ReadGraph graph) throws DatabaseException { - enumerationIndexes = graph.getSingleObject(enumeration, SysdynResource.getInstance(graph).HasEnumerationIndexes); + enumerationIndexes = graph.getSingleObject(enumeration, SysdynResource.getInstance(graph).Enumeration_enumerationIndexes); } }); } catch (DatabaseException e) { @@ -218,7 +218,7 @@ public class EnumerationTab extends LabelPropertyTabContributor implements Widge @Override public void run(ReadGraph graph) throws DatabaseException { - enumerationIndexes = graph.getSingleObject(enumeration, SysdynResource.getInstance(graph).HasEnumerationIndexes); + enumerationIndexes = graph.getSingleObject(enumeration, SysdynResource.getInstance(graph).Enumeration_enumerationIndexes); } }); } catch (DatabaseException e) { @@ -276,10 +276,10 @@ public class EnumerationTab extends LabelPropertyTabContributor implements Widge public Boolean perform(ReadGraph graph) throws DatabaseException { SysdynResource sr = SysdynResource.getInstance(graph); - enumerationIndexes = graph.getSingleObject(enumeration, sr.HasEnumerationIndexes); + enumerationIndexes = graph.getSingleObject(enumeration, sr.Enumeration_enumerationIndexes); List indexes = OrderedSetUtils.toList(graph, enumerationIndexes); for(Resource index : indexes) { - Boolean show = graph.getPossibleRelatedValue(index, sr.ShowEnumerationIndexInCharts, Bindings.BOOLEAN); + Boolean show = graph.getPossibleRelatedValue(index, sr.EnumerationIndex_showEnumerationIndexInCharts, Bindings.BOOLEAN); if(!Boolean.TRUE.equals(show)) return false; } @@ -326,11 +326,11 @@ public class EnumerationTab extends LabelPropertyTabContributor implements Widge SysdynResource sr = SysdynResource.getInstance(graph); List indexes = OrderedSetUtils.toList(graph, enumerationIndexes); for(Resource index : indexes) { - Boolean show = graph.getPossibleRelatedValue(index, sr.ShowEnumerationIndexInCharts, Bindings.BOOLEAN); + Boolean show = graph.getPossibleRelatedValue(index, sr.EnumerationIndex_showEnumerationIndexInCharts, Bindings.BOOLEAN); if(selected && !Boolean.TRUE.equals(show)) { - graph.claimLiteral(index, sr.ShowEnumerationIndexInCharts, true, Bindings.BOOLEAN); + graph.claimLiteral(index, sr.EnumerationIndex_showEnumerationIndexInCharts, true, Bindings.BOOLEAN); } else if(!selected && !Boolean.FALSE.equals(show)) { - graph.claimLiteral(index, sr.ShowEnumerationIndexInCharts, false, Bindings.BOOLEAN); + graph.claimLiteral(index, sr.EnumerationIndex_showEnumerationIndexInCharts, false, Bindings.BOOLEAN); } } diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/EquationTab.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/EquationTab.java index 74fc5cac..a8340f24 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/EquationTab.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/EquationTab.java @@ -179,17 +179,17 @@ public class EquationTab extends LabelPropertyTabContributor implements Widget { SysdynResource sr = SysdynResource.getInstance(graph); Layer0 l0 = Layer0.getInstance(graph); Resource expressions = OrderedSetUtils.create(graph, sr.Expressions); - graph.claim(variable, sr.HasExpressions, expressions); + graph.claim(variable, sr.Variable_expressions, expressions); final Resource expression = graph.newResource(); if(graph.isInstanceOf(variable, sr.Auxiliary) || graph.isInstanceOf(variable, sr.Valve)) { graph.claim(expression, l0.InstanceOf, null, sr.NormalExpression); - graph.claimLiteral(expression, sr.HasEquation, ""); + graph.claimLiteral(expression, sr.Expression_equation, ""); } else if(graph.isInstanceOf(variable, sr.Stock)) { graph.claim(expression, l0.InstanceOf, null, sr.StockExpression); - graph.claimLiteral(expression, sr.HasInitialEquation, ""); + graph.claimLiteral(expression, sr.StockExpression_initialEquation, ""); } OrderedSetUtils.add(graph, expressions, expression); graph.claim(variable, l0.ConsistsOf, expression); @@ -204,9 +204,9 @@ public class EquationTab extends LabelPropertyTabContributor implements Widget { @Override public void perform(WriteGraph graph) throws DatabaseException { SysdynResource sr = SysdynResource.getInstance(graph); - if(graph.hasStatement(variable, sr.HasActiveExpression)) - graph.deny(variable, sr.HasActiveExpression); - graph.claim(variable, sr.HasActiveExpression, expression); + if(graph.hasStatement(variable, sr.IndependentVariable_activeExpression)) + graph.deny(variable, sr.IndependentVariable_activeExpression); + graph.claim(variable, sr.IndependentVariable_activeExpression, expression); } } ); @@ -229,7 +229,7 @@ public class EquationTab extends LabelPropertyTabContributor implements Widget { @Override public Pair perform(ReadGraph graph) throws DatabaseException { SysdynResource sr = SysdynResource.getInstance(graph); - Resource expressions = graph.getPossibleObject(variable, sr.HasExpressions); + Resource expressions = graph.getPossibleObject(variable, sr.Variable_expressions); if(expressions == null) { return new Pair(false, false); } @@ -249,7 +249,7 @@ public class EquationTab extends LabelPropertyTabContributor implements Widget { * the ranges is the default range, an expression can be added */ for(Resource expression : expressionList) { - String range = graph.getPossibleRelatedValue(expression, sr.HasArrayRange); + String range = graph.getPossibleRelatedValue(expression, sr.Expression_arrayRange); if(range == null || range.equals("") || range.equals(defaultRange)) { canAdd = false; break; @@ -318,7 +318,7 @@ public class EquationTab extends LabelPropertyTabContributor implements Widget { Layer0 l0 = Layer0.getInstance(graph); // Currently active expressin should be located in (Model sr.HasActiveExpression expression) - Resource activeExpression = graph.getPossibleObject(input, sr.HasActiveExpression); + Resource activeExpression = graph.getPossibleObject(input, sr.IndependentVariable_activeExpression); if(activeExpression == null) return; @@ -350,9 +350,9 @@ public class EquationTab extends LabelPropertyTabContributor implements Widget { @Override public void perform(WriteGraph graph) throws DatabaseException { SysdynResource sr = SysdynResource.getInstance(graph); - if(graph.hasStatement(input, sr.HasActiveExpression)) - graph.deny(input, sr.HasActiveExpression); - graph.claim(input, sr.HasActiveExpression, newActive); + if(graph.hasStatement(input, sr.IndependentVariable_activeExpression)) + graph.deny(input, sr.IndependentVariable_activeExpression); + graph.claim(input, sr.IndependentVariable_activeExpression, newActive); } } ); @@ -370,18 +370,18 @@ public class EquationTab extends LabelPropertyTabContributor implements Widget { SysdynResource sr = SysdynResource.getInstance(graph); Layer0 l0 = Layer0.getInstance(graph); - Resource expressions = graph.getPossibleObject(input, sr.HasExpressions); + Resource expressions = graph.getPossibleObject(input, sr.Variable_expressions); if(expressions == null) { return; } // Get the currently active expression - Resource activeExpression = graph.getPossibleObject(input, sr.HasActiveExpression); + Resource activeExpression = graph.getPossibleObject(input, sr.IndependentVariable_activeExpression); Resource newExpression = graph.newResource(); if(activeExpression != null) { // Create a new expression based on the old expression graph.claim(newExpression, l0.InstanceOf, graph.getSingleObject(activeExpression, l0.InstanceOf)); if(graph.isInstanceOf(newExpression, sr.StockExpression)) { - graph.claimLiteral(newExpression, sr.HasInitialEquation, ""); + graph.claimLiteral(newExpression, sr.StockExpression_initialEquation, ""); } } else { // If there was no active expression, create a normal expression @@ -616,9 +616,9 @@ public class EquationTab extends LabelPropertyTabContributor implements Widget { */ private Resource getActiveExpression(ReadGraph graph, Resource variable) throws DatabaseException { SysdynResource sr = SysdynResource.getInstance(graph); - Resource expression = graph.getPossibleObject(variable, sr.HasActiveExpression); + Resource expression = graph.getPossibleObject(variable, sr.IndependentVariable_activeExpression); if(expression == null) { - Resource expressions = graph.getPossibleObject(variable, sr.HasExpressions); + Resource expressions = graph.getPossibleObject(variable, sr.Variable_expressions); if(expressions == null) { return null; } diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/InputVariableTab.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/InputVariableTab.java index 4ee58758..a3d6b187 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/InputVariableTab.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/InputVariableTab.java @@ -60,8 +60,8 @@ public class InputVariableTab extends LabelPropertyTabContributor { label.setText("Default Value:"); TrackedText defaultValue = new TrackedText(defaultValueComposite, support, SWT.RIGHT | SWT.BORDER); - defaultValue.setTextFactory(new DoublePropertyFactory(SysdynResource.URIs.HasDefaultInputValue)); - defaultValue.addModifyListener(new DoublePropertyModifier(context, SysdynResource.URIs.HasDefaultInputValue)); + defaultValue.setTextFactory(new DoublePropertyFactory(SysdynResource.URIs.Input_defaultInputValue)); + defaultValue.addModifyListener(new DoublePropertyModifier(context, SysdynResource.URIs.Input_defaultInputValue)); defaultValue.setInputValidator(new DoubleValidator()); GridDataFactory.fillDefaults().grab(true, false).applyTo(defaultValue.getWidget()); diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/LookupTableTab.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/LookupTableTab.java index 678227ff..16c92c38 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/LookupTableTab.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/LookupTableTab.java @@ -41,15 +41,15 @@ public class LookupTableTab extends LabelPropertyTabContributor { GridDataFactory.fillDefaults().grab(false, true).applyTo(Ycontainer); TrackedText maxYText = new TrackedText(Ycontainer, support, SWT.BORDER); - maxYText.setTextFactory(new DoublePropertyFactory(SysdynResource.URIs.HasMaxY)); - maxYText.addModifyListener(new DoublePropertyModifier(context, SysdynResource.URIs.HasMaxY)); + maxYText.setTextFactory(new DoublePropertyFactory(SysdynResource.URIs.WithLookupExpression_maxY)); + maxYText.addModifyListener(new DoublePropertyModifier(context, SysdynResource.URIs.WithLookupExpression_maxY)); Label l = new Label(Ycontainer, SWT.NONE); GridDataFactory.fillDefaults().align(SWT.CENTER, SWT.CENTER).grab(false, true).applyTo(l); TrackedText minYText = new TrackedText(Ycontainer, support, SWT.BORDER); - minYText.setTextFactory(new DoublePropertyFactory(SysdynResource.URIs.HasMinY)); - minYText.addModifyListener(new DoublePropertyModifier(context, SysdynResource.URIs.HasMinY)); + minYText.setTextFactory(new DoublePropertyFactory(SysdynResource.URIs.WithLookupExpression_minY)); + minYText.addModifyListener(new DoublePropertyModifier(context, SysdynResource.URIs.WithLookupExpression_minY)); Composite chartContainer = new Composite(baseContainer, SWT.NONE); @@ -73,15 +73,15 @@ public class LookupTableTab extends LabelPropertyTabContributor { GridDataFactory.fillDefaults().grab(true, false).applyTo(Xcontainer); TrackedText minXText = new TrackedText(Xcontainer, support, SWT.BORDER); - minXText.setTextFactory(new DoublePropertyFactory(SysdynResource.URIs.HasMinX)); - minXText.addModifyListener(new DoublePropertyModifier(context, SysdynResource.URIs.HasMinX)); + minXText.setTextFactory(new DoublePropertyFactory(SysdynResource.URIs.WithLookupExpression_minX)); + minXText.addModifyListener(new DoublePropertyModifier(context, SysdynResource.URIs.WithLookupExpression_minX)); l = new Label(Xcontainer, SWT.NONE); GridDataFactory.fillDefaults().align(SWT.CENTER, SWT.CENTER).grab(true, false).applyTo(l); TrackedText maxXText = new TrackedText(Xcontainer, support, SWT.BORDER); - maxXText.setTextFactory(new DoublePropertyFactory(SysdynResource.URIs.HasMaxX)); - maxXText.addModifyListener(new DoublePropertyModifier(context, SysdynResource.URIs.HasMaxX)); + maxXText.setTextFactory(new DoublePropertyFactory(SysdynResource.URIs.WithLookupExpression_maxX)); + maxXText.addModifyListener(new DoublePropertyModifier(context, SysdynResource.URIs.WithLookupExpression_maxX)); } } diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/ModuleInputTab.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/ModuleInputTab.java index f188749c..2ee0ac0f 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/ModuleInputTab.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/ModuleInputTab.java @@ -69,8 +69,8 @@ public class ModuleInputTab extends LabelPropertyTabContributor { Resource configuration = graph.getSingleObject(instanceOf, sr2.IsDefinedBy); for(Resource input : graph.syncRequest(new ObjectsWithType(configuration, l0.ConsistsOf, sr.Input))) { Resource dependency = null; - for(Resource dep : graph.getObjects(module, sr.IsHeadOf)) { - Resource refersTo = graph.getPossibleObject(dep, sr.RefersTo); + for(Resource dep : graph.getObjects(module, sr.Variable_isHeadOf)) { + Resource refersTo = graph.getPossibleObject(dep, sr.Dependency_refersTo); if(refersTo != null && refersTo.equals(input)) { dependency = dep; break; diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/ModuleOutputTab.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/ModuleOutputTab.java index 29c2819f..24e08266 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/ModuleOutputTab.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/ModuleOutputTab.java @@ -71,8 +71,8 @@ public class ModuleOutputTab extends LabelPropertyTabContributor { if(!graph.hasStatement(variable, sr.IsOutput)) continue; Resource dependency = null; - for(Resource dep : graph.getObjects(module, sr.IsTailOf)) { - Resource refersTo = graph.getPossibleObject(dep, sr.RefersTo); + for(Resource dep : graph.getObjects(module, sr.Variable_isTailOf)) { + Resource refersTo = graph.getPossibleObject(dep, sr.Dependency_refersTo); if(refersTo != null && refersTo.equals(variable)) { dependency = dep; break; diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/ResourceSelectionProcessor.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/ResourceSelectionProcessor.java index 6ba81d70..d26e3668 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/ResourceSelectionProcessor.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/ResourceSelectionProcessor.java @@ -117,14 +117,14 @@ public class ResourceSelectionProcessor implements SelectionProcessor expressionList = OrderedSetUtils.toList(backend, expressions); if(expressionList.isEmpty()) { System.err.println("expressionList is empty for " + r); @@ -257,7 +257,7 @@ public class ResourceSelectionProcessor implements SelectionProcessor expressions = getExpressions(graph, input); @@ -102,7 +102,7 @@ public class ArrayExpressionCombo extends TrackedCombo { } else { expression = activeExpression; } - String range = graph.getPossibleRelatedValue(expression, sr.HasArrayRange); + String range = graph.getPossibleRelatedValue(expression, sr.Expression_arrayRange); if(range != null) return name + range; else @@ -155,7 +155,7 @@ public class ArrayExpressionCombo extends TrackedCombo { private ArrayList getExpressions(ReadGraph graph, Resource variable) throws DatabaseException { SysdynResource sr = SysdynResource.getInstance(graph); - Resource hasExpressions = graph.getPossibleObject(variable, sr.HasExpressions); + Resource hasExpressions = graph.getPossibleObject(variable, sr.Variable_expressions); if(hasExpressions == null) return new ArrayList(); else @@ -164,7 +164,7 @@ public class ArrayExpressionCombo extends TrackedCombo { public static String getDefaultRange(ReadGraph graph, Resource variable) throws DatabaseException { SysdynResource sr = SysdynResource.getInstance(graph); - Resource hasArrayIndexes = graph.getPossibleObject(variable, sr.HasArrayIndexes); + Resource hasArrayIndexes = graph.getPossibleObject(variable, sr.Variable_arrayIndexes); if(hasArrayIndexes == null) return null; @@ -240,13 +240,15 @@ public class ArrayExpressionCombo extends TrackedCombo { SysdynResource sr = SysdynResource.getInstance(graph); if(range != null && lastExpression != null) { - String oldRange = graph.getPossibleRelatedValue(lastExpression, sr.HasArrayRange); + String oldRange = graph.getPossibleRelatedValue(lastExpression, sr.Expression_arrayRange); if(oldRange == null || !range.equals(oldRange)) { - graph.claimLiteral(lastExpression, sr.HasArrayRange, "[" + range + "]"); + graph.claimLiteral(lastExpression, sr.Expression_arrayRange, "[" + range + "]"); } + } else if (range == null && lastExpression != null && graph.hasStatement(lastExpression, sr.Expression_arrayRange)) { + graph.deny(lastExpression, sr.Expression_arrayRange); } - Resource activeExpression = graph.getPossibleObject(variable, sr.HasActiveExpression); + Resource activeExpression = graph.getPossibleObject(variable, sr.IndependentVariable_activeExpression); if(lastExpression != null && !lastExpression.equals(activeExpression)) { VirtualGraphSupport support = graph.getService(VirtualGraphSupport.class); @@ -259,9 +261,9 @@ public class ArrayExpressionCombo extends TrackedCombo { @Override public void perform(WriteGraph graph) throws DatabaseException { SysdynResource sr = SysdynResource.getInstance(graph); - if(graph.hasStatement(variable, sr.HasActiveExpression)) - graph.deny(variable, sr.HasActiveExpression); - graph.claim(variable, sr.HasActiveExpression, lastExpression); + if(graph.hasStatement(variable, sr.IndependentVariable_activeExpression)) + graph.deny(variable, sr.IndependentVariable_activeExpression); + graph.claim(variable, sr.IndependentVariable_activeExpression, lastExpression); } } ); diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/ChartWidget.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/ChartWidget.java index 81ed6720..2dd769dc 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/ChartWidget.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/ChartWidget.java @@ -104,10 +104,10 @@ public class ChartWidget implements Widget { if(!graph.isInstanceOf(expression, sr.WithLookupExpression)) return null; Auxiliary auxiliary = new Auxiliary(); - auxiliary.minX = graph.getPossibleRelatedValue(expression, sr.HasMinX); - auxiliary.maxX = graph.getPossibleRelatedValue(expression, sr.HasMaxX); - auxiliary.minY = graph.getPossibleRelatedValue(expression, sr.HasMinY); - auxiliary.maxY = graph.getPossibleRelatedValue(expression, sr.HasMaxY); + auxiliary.minX = graph.getPossibleRelatedValue(expression, sr.WithLookupExpression_minX); + auxiliary.maxX = graph.getPossibleRelatedValue(expression, sr.WithLookupExpression_maxX); + auxiliary.minY = graph.getPossibleRelatedValue(expression, sr.WithLookupExpression_minY); + auxiliary.maxY = graph.getPossibleRelatedValue(expression, sr.WithLookupExpression_maxY); auxiliary.table = graph.getPossibleRelatedValue(expression, sr.WithLookupExpression_lookup); return auxiliary; } diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/ExpressionWidget.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/ExpressionWidget.java index 5da8f765..1aff73aa 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/ExpressionWidget.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/ExpressionWidget.java @@ -228,7 +228,7 @@ public class ExpressionWidget implements Widget { Collection expressionLists = OrderedSetUtils.getOwnerLists(graph, expr, l0.OrderedSet); Resource variable = null; if(expressionLists.size() == 1) - variable = graph.getPossibleObject(expressionLists.iterator().next(), sr.HasExpressions_Inverse); + variable = graph.getPossibleObject(expressionLists.iterator().next(), sr.Variable_expressions_Inverse); return variable; } }); diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/ModuleInputEditingSupport.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/ModuleInputEditingSupport.java index cfc2810c..2491d6e2 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/ModuleInputEditingSupport.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/ModuleInputEditingSupport.java @@ -70,9 +70,9 @@ public class ModuleInputEditingSupport extends EditingSupport { Layer0 l0 = Layer0.getInstance(graph); SysdynResource sr = SysdynResource.getInstance(graph); HashMap result = new HashMap(); - for(Resource dependency : graph.syncRequest(new ObjectsWithType(module, sr.IsHeadOf, sr.Dependency))) { - if(graph.getPossibleObject(dependency, sr.RefersTo) == null || - graph.getPossibleObject(dependency, sr.RefersTo).equals(inputVariable)) { + for(Resource dependency : graph.syncRequest(new ObjectsWithType(module, sr.Variable_isHeadOf, sr.Dependency))) { + if(graph.getPossibleObject(dependency, sr.Dependency_refersTo) == null || + graph.getPossibleObject(dependency, sr.Dependency_refersTo).equals(inputVariable)) { Resource output = graph.getSingleObject(dependency, sr.HasTail); result.put((String)graph.getRelatedValue(output, l0.HasName), dependency); } diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/ModuleOutputEditingSupport.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/ModuleOutputEditingSupport.java index 7a69d742..91d3c487 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/ModuleOutputEditingSupport.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/ModuleOutputEditingSupport.java @@ -70,10 +70,10 @@ public class ModuleOutputEditingSupport extends EditingSupport { Layer0 l0 = Layer0.getInstance(graph); SysdynResource sr = SysdynResource.getInstance(graph); HashMap result = new HashMap(); - for(Resource dependency : graph.syncRequest(new ObjectsWithType(module, sr.IsTailOf, sr.Dependency))) { - if(graph.getPossibleObject(dependency, sr.RefersTo) == null - || !graph.hasStatement(graph.getPossibleObject(dependency, sr.RefersTo), l0.HasName) - || graph.getPossibleObject(dependency, sr.RefersTo).equals(outputVariable)) { + for(Resource dependency : graph.syncRequest(new ObjectsWithType(module, sr.Variable_isTailOf, sr.Dependency))) { + if(graph.getPossibleObject(dependency, sr.Dependency_refersTo) == null + || !graph.hasStatement(graph.getPossibleObject(dependency, sr.Dependency_refersTo), l0.HasName) + || graph.getPossibleObject(dependency, sr.Dependency_refersTo).equals(outputVariable)) { Resource input = graph.getSingleObject(dependency, sr.HasHead); result.put((String)graph.getRelatedValue(input, l0.HasName), dependency); } diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/ReferenceRow.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/ReferenceRow.java index 5aeeaec7..6bebab0e 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/ReferenceRow.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/ReferenceRow.java @@ -93,14 +93,14 @@ public class ReferenceRow { @Override public void perform(WriteGraph graph) throws DatabaseException { SysdynResource sr = SysdynResource.getInstance(graph); - if(getDependency() != null && graph.hasStatement(getDependency(), sr.RefersTo)) - graph.deny(getDependency(), sr.RefersTo); - if(dependency != null && graph.hasStatement(dependency, sr.RefersTo)) - graph.deny(dependency, sr.RefersTo); + if(getDependency() != null && graph.hasStatement(getDependency(), sr.Dependency_refersTo)) + graph.deny(getDependency(), sr.Dependency_refersTo); + if(dependency != null && graph.hasStatement(dependency, sr.Dependency_refersTo)) + graph.deny(dependency, sr.Dependency_refersTo); setDependency(null); if(dependency != null) { setDependency(dependency); - graph.claim(getDependency(), SysdynResource.getInstance(graph).RefersTo, getVariable()); + graph.claim(getDependency(), SysdynResource.getInstance(graph).Dependency_refersTo, getVariable()); } } }); diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/ShortcutTabWidget.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/ShortcutTabWidget.java index 4e8374e7..89da1e7a 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/ShortcutTabWidget.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/ShortcutTabWidget.java @@ -224,7 +224,7 @@ public class ShortcutTabWidget implements Widget { SysdynResource sr = SysdynResource.getInstance(graph); Layer0 l0 = Layer0.getInstance(graph); - Collection dependencies = graph.getObjects(r, sr.IsHeadOf); + Collection dependencies = graph.getObjects(r, sr.Variable_isHeadOf); for(Resource d : dependencies) { if(graph.isInstanceOf(d, sr.Dependency)) { diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/ValveOrientationGroup.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/ValveOrientationGroup.java index 6f7546ed..dbdf9514 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/ValveOrientationGroup.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/ValveOrientationGroup.java @@ -96,7 +96,7 @@ public class ValveOrientationGroup extends WidgetImpl { if(symbol == null) return Boolean.FALSE; - Resource orientation = graph.getPossibleObject(symbol, sr.HasValveOrientation); + Resource orientation = graph.getPossibleObject(symbol, sr.ValveSymbol_orientation); if(orientation == null) return defaultSelected; @@ -127,14 +127,14 @@ public class ValveOrientationGroup extends WidgetImpl { if(symbol == null) return; - if(graph.hasStatement(symbol, sr.HasValveOrientation)) - graph.deny(symbol, sr.HasValveOrientation); - graph.claim(symbol, sr.HasValveOrientation, graph.getResource(uri)); + if(graph.hasStatement(symbol, sr.ValveSymbol_orientation)) + graph.deny(symbol, sr.ValveSymbol_orientation); + graph.claim(symbol, sr.ValveSymbol_orientation, graph.getResource(uri)); - if(graph.hasStatement(symbol, sr.HasTextLocation)) - graph.deny(symbol, sr.HasTextLocation); + if(graph.hasStatement(symbol, sr.ValveSymbol_textLocation)) + graph.deny(symbol, sr.ValveSymbol_textLocation); if(sr.Vertical.equals(graph.getResource(uri))) - graph.claim(symbol, sr.HasTextLocation, sr.Right); + graph.claim(symbol, sr.ValveSymbol_textLocation, sr.Right); } diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/ValveTextLocationGroup.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/ValveTextLocationGroup.java index 69d8376a..87615966 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/ValveTextLocationGroup.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/ValveTextLocationGroup.java @@ -111,7 +111,7 @@ public class ValveTextLocationGroup extends WidgetImpl { if(symbol == null) return Boolean.FALSE; - Resource location = graph.getPossibleObject(symbol, sr.HasTextLocation); + Resource location = graph.getPossibleObject(symbol, sr.ValveSymbol_textLocation); if(location == null) return defaultSelected; @@ -142,9 +142,9 @@ public class ValveTextLocationGroup extends WidgetImpl { if(symbol == null) return; - if(graph.hasStatement(symbol, sr.HasTextLocation)) - graph.deny(symbol, sr.HasTextLocation); - graph.claim(symbol, sr.HasTextLocation, graph.getResource(uri)); + if(graph.hasStatement(symbol, sr.ValveSymbol_textLocation)) + graph.deny(symbol, sr.ValveSymbol_textLocation); + graph.claim(symbol, sr.ValveSymbol_textLocation, graph.getResource(uri)); } } diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/arrays/EnumerationIndexNode.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/arrays/EnumerationIndexNode.java index da74629d..e5aaef7e 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/arrays/EnumerationIndexNode.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/arrays/EnumerationIndexNode.java @@ -82,7 +82,7 @@ public class EnumerationIndexNode extends AbstractNode implements IMo @Override public void perform(WriteGraph graph) throws DatabaseException { SysdynResource sr = SysdynResource.getInstance(graph); - graph.claimLiteral(data, sr.ShowEnumerationIndexInCharts, selected); + graph.claimLiteral(data, sr.EnumerationIndex_showEnumerationIndexInCharts, selected); } }); } catch (DatabaseException e) { diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/arrays/EnumerationIndexes.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/arrays/EnumerationIndexes.java index fcf13e91..dc9c290a 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/arrays/EnumerationIndexes.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/arrays/EnumerationIndexes.java @@ -21,7 +21,7 @@ public class EnumerationIndexes extends ViewpointContributorImpl { SysdynResource sr = SysdynResource.getInstance(graph); if(!graph.isInstanceOf(input, sr.Enumeration)) return null; - Resource enumerationIndexList = graph.getPossibleObject(input, sr.HasEnumerationIndexes); + Resource enumerationIndexList = graph.getPossibleObject(input, sr.Enumeration_enumerationIndexes); if(enumerationIndexList == null) return null; ArrayList> result = new ArrayList>(); diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/arrays/EnumerationLabeler.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/arrays/EnumerationLabeler.java index bbaaa54a..801b4853 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/arrays/EnumerationLabeler.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/arrays/EnumerationLabeler.java @@ -25,7 +25,7 @@ public class EnumerationLabeler extends ColumnLabelerContributorImpl indexes = OrderedSetUtils.iterator(graph, enumerationIndexes); StringBuilder sb = new StringBuilder(); sb.append("["); @@ -37,7 +37,7 @@ public class EnumerationLabeler extends ColumnLabelerContributorImpl implements IModif try { Resource redeclaration = getRedeclaration(graph); if(redeclaration != null) { - result = graph.getSingleObject(redeclaration, sr.ReplacingEnumeration); + result = graph.getSingleObject(redeclaration, sr.Redeclaration_replacingEnumeration); } } catch(DatabaseException e) { e.printStackTrace(); @@ -72,8 +72,8 @@ public class RedeclarationNode extends AbstractNode implements IModif public Resource getRedeclaration(ReadGraph graph) { try { SysdynResource sr = SysdynResource.getInstance(graph); - for(Resource redeclaration : graph.syncRequest(new ObjectsWithType(module, sr.HasRedeclaration, sr.Redeclaration))) { - Resource replacedEnumeration = graph.getPossibleObject(redeclaration, sr.ReplacedEnumeration); + for(Resource redeclaration : graph.syncRequest(new ObjectsWithType(module, sr.Module_redeclaration, sr.Redeclaration))) { + Resource replacedEnumeration = graph.getPossibleObject(redeclaration, sr.Redeclaration_replacedEnumeration); if(replacedEnumeration != null && replacedEnumeration.equals(getReplacedEnumeration())) { return redeclaration; } @@ -89,11 +89,11 @@ public class RedeclarationNode extends AbstractNode implements IModif SysdynResource sr = SysdynResource.getInstance(graph); Resource oldRedeclaration = getRedeclaration(graph); if(oldRedeclaration != null || redeclaration == null) { - graph.deny(module, sr.HasRedeclaration, oldRedeclaration); + graph.deny(module, sr.Module_redeclaration, oldRedeclaration); } if(redeclaration != null) - graph.claim(module, sr.HasRedeclaration, redeclaration); + graph.claim(module, sr.Module_redeclaration, redeclaration); } catch (DatabaseException e) { e.printStackTrace(); @@ -148,8 +148,8 @@ public class RedeclarationNode extends AbstractNode implements IModif SysdynResource sr = SysdynResource.getInstance(graph); Resource redeclaration = GraphUtils.create2(graph, sr.Redeclaration, - sr.ReplacedEnumeration, getReplacedEnumeration(), - sr.ReplacingEnumeration, enumObject); + sr.Redeclaration_replacedEnumeration, getReplacedEnumeration(), + sr.Redeclaration_replacingEnumeration, enumObject); setRedeclaration(graph, redeclaration); } diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/arrays/ReplaceableEnumerations.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/arrays/ReplaceableEnumerations.java index 78faa6b3..7f8a1fa2 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/arrays/ReplaceableEnumerations.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/arrays/ReplaceableEnumerations.java @@ -44,7 +44,7 @@ public class ReplaceableEnumerations extends ViewpointContributorImpl return result; for(Resource r : graph.syncRequest(new ObjectsWithType(configuration, l0.ConsistsOf, sr.Enumeration))) { - if(Boolean.TRUE.equals(graph.getRelatedValue(r, sr.IsReplaceable))) + if(Boolean.TRUE.equals(graph.getRelatedValue(r, sr.Enumeration_isReplaceable))) result.add(new RedeclarationNode(graph, input, r)); } diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/arrays/ReplaceableIndexesWidget.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/arrays/ReplaceableIndexesWidget.java index 06caf4d4..0dd0a49a 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/arrays/ReplaceableIndexesWidget.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/arrays/ReplaceableIndexesWidget.java @@ -61,7 +61,7 @@ public class ReplaceableIndexesWidget implements Widget { @Override public void run(ReadGraph graph) throws DatabaseException { SysdynResource sr = SysdynResource.getInstance(graph); - final Boolean replaceable = graph.getPossibleRelatedValue(variable, sr.IsReplaceable); + final Boolean replaceable = graph.getPossibleRelatedValue(variable, sr.Enumeration_isReplaceable); if(replaceable != null) selected = replaceable; final Button button = getWidget(); @@ -90,12 +90,12 @@ public class ReplaceableIndexesWidget implements Widget { @Override public void apply(WriteGraph graph, Resource input) throws DatabaseException { SysdynResource sr = SysdynResource.getInstance(graph); - Boolean replaceable = graph.getPossibleRelatedValue(input, sr.IsReplaceable); + Boolean replaceable = graph.getPossibleRelatedValue(input, sr.Enumeration_isReplaceable); if(Boolean.TRUE.equals(replaceable)) { - graph.claimLiteral(input, sr.IsReplaceable, false); + graph.claimLiteral(input, sr.Enumeration_isReplaceable, false); selected = false; } else { - graph.claimLiteral(input, sr.IsReplaceable, true); + graph.claimLiteral(input, sr.Enumeration_isReplaceable, true); selected = true; } } diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/arrays/ShowInChartsCheckBox.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/arrays/ShowInChartsCheckBox.java index 232db37b..da412f47 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/arrays/ShowInChartsCheckBox.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/arrays/ShowInChartsCheckBox.java @@ -13,7 +13,7 @@ public class ShowInChartsCheckBox extends CheckedStateContributor { ArrayList> result = new ArrayList>(); - Resource arrayIndexes = graph.getPossibleObject(input, sr.HasArrayIndexes); + Resource arrayIndexes = graph.getPossibleObject(input, sr.Variable_arrayIndexes); if(arrayIndexes == null) { return result; } diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/expressions/BasicExpression.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/expressions/BasicExpression.java index 96c6268e..4f4abc53 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/expressions/BasicExpression.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/expressions/BasicExpression.java @@ -90,7 +90,7 @@ public class BasicExpression implements IExpression { public String perform(ReadGraph graph) throws DatabaseException { SysdynResource sr = SysdynResource.getInstance(graph); if (expression != null) { - String equation = graph.getPossibleRelatedValue(expression, sr.HasEquation); + String equation = graph.getPossibleRelatedValue(expression, sr.Expression_equation); if(equation != null) return equation; } @@ -158,12 +158,12 @@ public class BasicExpression implements IExpression { return; Resource ownerList = ownerLists.iterator().next(); final Resource newExpression = GraphUtils.create2(g, expressionType, - sr.HasEquation, currentText); - String arrayRange = g.getPossibleRelatedValue(expression, sr.HasArrayRange, Bindings.STRING); + sr.Expression_equation, currentText); + String arrayRange = g.getPossibleRelatedValue(expression, sr.Expression_arrayRange, Bindings.STRING); if(arrayRange != null) - g.claimLiteral(newExpression, sr.HasArrayRange, arrayRange); + g.claimLiteral(newExpression, sr.Expression_arrayRange, arrayRange); - final Resource variable = g.getSingleObject(ownerList, sr.HasExpressions_Inverse); + final Resource variable = g.getSingleObject(ownerList, sr.Variable_expressions_Inverse); OrderedSetUtils.replace(g, ownerList, expression, newExpression); g.deny(expression, l0.PartOf); g.claim(newExpression, l0.PartOf, variable); @@ -175,16 +175,16 @@ public class BasicExpression implements IExpression { public void perform(WriteGraph graph) throws DatabaseException { SysdynResource sr = SysdynResource.getInstance(graph); if(variable != null) { - if(graph.hasStatement(variable, sr.HasActiveExpression)) - graph.deny(variable, sr.HasActiveExpression); - graph.claim(variable, sr.HasActiveExpression, newExpression); + if(graph.hasStatement(variable, sr.IndependentVariable_activeExpression)) + graph.deny(variable, sr.IndependentVariable_activeExpression); + graph.claim(variable, sr.IndependentVariable_activeExpression, newExpression); } } } ); } else { // Claim value for the expression - g.claimLiteral(expression, sr.HasEquation, currentText); + g.claimLiteral(expression, sr.Expression_equation, currentText); } } diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/expressions/DelayExpression.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/expressions/DelayExpression.java index 8494a8c9..d9401442 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/expressions/DelayExpression.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/expressions/DelayExpression.java @@ -243,11 +243,11 @@ public class DelayExpression implements IExpression { // Create a new DelayExpression, if the old expression was something else Resource ownerList = OrderedSetUtils.getSingleOwnerList(g, expression); final Resource newExpression = GraphUtils.create2(g, sr.DelayExpression); - String arrayRange = g.getPossibleRelatedValue(expression, sr.HasArrayRange, Bindings.STRING); + String arrayRange = g.getPossibleRelatedValue(expression, sr.Expression_arrayRange, Bindings.STRING); if(arrayRange != null) - g.claimLiteral(newExpression, sr.HasArrayRange, arrayRange); + g.claimLiteral(newExpression, sr.Expression_arrayRange, arrayRange); - final Resource variable = g.getSingleObject(ownerList, sr.HasExpressions_Inverse); + final Resource variable = g.getSingleObject(ownerList, sr.Variable_expressions_Inverse); OrderedSetUtils.replace(g, ownerList, expression, newExpression); g.deny(expression, l0.PartOf); g.claim(newExpression, l0.PartOf, variable); @@ -257,9 +257,9 @@ public class DelayExpression implements IExpression { @Override public void perform(WriteGraph graph) throws DatabaseException { SysdynResource sr = SysdynResource.getInstance(graph); - if(graph.hasStatement(variable, sr.HasActiveExpression)) - graph.deny(variable, sr.HasActiveExpression); - graph.claim(variable, sr.HasActiveExpression, newExpression); + if(graph.hasStatement(variable, sr.IndependentVariable_activeExpression)) + graph.deny(variable, sr.IndependentVariable_activeExpression); + graph.claim(variable, sr.IndependentVariable_activeExpression, newExpression); } } ); diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/expressions/StockExpression.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/expressions/StockExpression.java index 96d833dc..ec2caa18 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/expressions/StockExpression.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/expressions/StockExpression.java @@ -96,7 +96,7 @@ public class StockExpression implements IExpression { public String perform(ReadGraph graph) throws DatabaseException { SysdynResource sr = SysdynResource.getInstance(graph); if (graph.isInstanceOf(expression, sr.StockExpression)) { - String initialEquation = graph.getPossibleRelatedValue(expression, sr.HasInitialEquation); + String initialEquation = graph.getPossibleRelatedValue(expression, sr.StockExpression_initialEquation); return initialEquation != null ? initialEquation : ""; } else { return ""; @@ -149,12 +149,12 @@ public class StockExpression implements IExpression { } g.claim(expression, l0.InstanceOf, null, sr.StockExpression); - Resource variable = g.getSingleObject(expressionList, sr.HasExpressions_Inverse); + Resource variable = g.getSingleObject(expressionList, sr.Variable_expressions_Inverse); OrderedSetUtils.replace(g, expressionList, temp, expression); g.deny(expression, l0.PartOf); g.claim(expression, l0.PartOf, variable); } - g.claimLiteral(expression, sr.HasInitialEquation, currentText); + g.claimLiteral(expression, sr.StockExpression_initialEquation, currentText); } }); @@ -186,7 +186,7 @@ public class StockExpression implements IExpression { // find the variable Resource expressionList = OrderedSetUtils.getSingleOwnerList(graph, expression); - Resource variable = graph.getPossibleObject(expressionList, sr.HasExpressions_Inverse); + Resource variable = graph.getPossibleObject(expressionList, sr.Variable_expressions_Inverse); if(variable == null) return ""; @@ -196,7 +196,7 @@ public class StockExpression implements IExpression { Stock stock = (Stock)model.getElement(variable); - String range = graph.getPossibleRelatedValue(expression, sr.HasArrayRange); + String range = graph.getPossibleRelatedValue(expression, sr.Expression_arrayRange); if(range == null) range = ""; diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/expressions/WithLookupExpression.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/expressions/WithLookupExpression.java index c4a5accf..c8e10962 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/expressions/WithLookupExpression.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/expressions/WithLookupExpression.java @@ -273,15 +273,15 @@ public class WithLookupExpression implements IExpression { Resource ownerList = OrderedSetUtils.getSingleOwnerList(g, expression); final Resource newExpression = GraphUtils.create2(g, sr.WithLookupExpression, - sr.HasMinX, 0.0, - sr.HasMaxX, 10.0, - sr.HasMinY, 0.0, - sr.HasMaxY, 10.0); - String arrayRange = g.getPossibleRelatedValue(expression, sr.HasArrayRange, Bindings.STRING); + sr.WithLookupExpression_minX, 0.0, + sr.WithLookupExpression_maxX, 10.0, + sr.WithLookupExpression_minY, 0.0, + sr.WithLookupExpression_maxY, 10.0); + String arrayRange = g.getPossibleRelatedValue(expression, sr.Expression_arrayRange, Bindings.STRING); if(arrayRange != null) - g.claimLiteral(newExpression, sr.HasArrayRange, arrayRange); + g.claimLiteral(newExpression, sr.Expression_arrayRange, arrayRange); - final Resource variable = g.getSingleObject(ownerList, sr.HasExpressions_Inverse); + final Resource variable = g.getSingleObject(ownerList, sr.Variable_expressions_Inverse); OrderedSetUtils.replace(g, ownerList, expression, newExpression); g.deny(expression, l0.PartOf); g.claim(newExpression, l0.PartOf, variable); @@ -291,9 +291,9 @@ public class WithLookupExpression implements IExpression { @Override public void perform(WriteGraph graph) throws DatabaseException { SysdynResource sr = SysdynResource.getInstance(graph); - if(graph.hasStatement(variable, sr.HasActiveExpression)) - graph.deny(variable, sr.HasActiveExpression); - graph.claim(variable, sr.HasActiveExpression, newExpression); + if(graph.hasStatement(variable, sr.IndependentVariable_activeExpression)) + graph.deny(variable, sr.IndependentVariable_activeExpression); + graph.claim(variable, sr.IndependentVariable_activeExpression, newExpression); } } ); diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/functions/FunctionCodeWidget.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/functions/FunctionCodeWidget.java index 7c07e305..a39568bc 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/functions/FunctionCodeWidget.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/functions/FunctionCodeWidget.java @@ -131,7 +131,7 @@ public class FunctionCodeWidget implements Widget { @Override public String perform(ReadGraph graph) throws DatabaseException { String code = graph.getPossibleRelatedValue( - function, SysdynResource.getInstance(graph).HasModelicaFunctionCode); + function, SysdynResource.getInstance(graph).SysdynModelicaFunction_modelicaFunctionCode); return code; } @@ -194,7 +194,7 @@ public class FunctionCodeWidget implements Widget { public void perform(WriteGraph graph) throws DatabaseException { graph.claimLiteral( function, - SysdynResource.getInstance(graph).HasModelicaFunctionCode, + SysdynResource.getInstance(graph).SysdynModelicaFunction_modelicaFunctionCode, code); Resource library = graph.getSingleObject(function, Layer0.getInstance(graph).PartOf); FunctionUtils.updateFunctionFileForLibrary(graph, library); diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/trend/chart/properties/RangeComposite.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/trend/chart/properties/RangeComposite.java index d919c540..e7284fc1 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/trend/chart/properties/RangeComposite.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/trend/chart/properties/RangeComposite.java @@ -100,7 +100,7 @@ public class RangeComposite extends Composite implements Widget { Resource variable = v.getRepresents(graph); // Return the enumerations assigned to that variable - Resource arrayIndexes = graph.getPossibleObject(variable, sr.HasArrayIndexes); + Resource arrayIndexes = graph.getPossibleObject(variable, sr.Variable_arrayIndexes); if(arrayIndexes != null) { LinkedHashMap result = new LinkedHashMap(); for(Resource enumeration : OrderedSetUtils.toList(graph, arrayIndexes)) { @@ -269,7 +269,7 @@ public class RangeComposite extends Composite implements Widget { public Map perform(ReadGraph graph, Resource series) throws DatabaseException { SysdynResource sr = SysdynResource.getInstance(graph); LinkedHashMap result = new LinkedHashMap(); - Resource enumerationIndexes = graph.getPossibleObject(enumeration, sr.HasEnumerationIndexes); + Resource enumerationIndexes = graph.getPossibleObject(enumeration, sr.Enumeration_enumerationIndexes); List indexes = OrderedSetUtils.toList(graph, enumerationIndexes); // First add "All" and "Sum", then all of the enumeration indexes in order result.put("All", "All"); diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/utils/ExpressionUtils.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/utils/ExpressionUtils.java index 6abe38f2..d0acb085 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/utils/ExpressionUtils.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/utils/ExpressionUtils.java @@ -53,409 +53,411 @@ import org.simantics.ui.SimanticsUI; public class ExpressionUtils { - /** - * Determines if the given expression is a parameter expression. Parameters are numbers. - * If the expression contains anything other than numbers, it is not a parameter. - * - * @param expression The expression to be checked - * @return is the expression a parameter - */ - static public boolean isParameter(String expression) { - try { - /* + /** + * Determines if the given expression is a parameter expression. Parameters are numbers. + * If the expression contains anything other than numbers, it is not a parameter. + * + * @param expression The expression to be checked + * @return is the expression a parameter + */ + static public boolean isParameter(String expression) { + try { + /* StringTokenizer st = new StringTokenizer(expression, "{}[],;"); while(st.hasMoreTokens()) { Double.parseDouble(st.nextToken().trim()); } - */ - Double.parseDouble(expression.trim()); - return true; - } catch (NumberFormatException e) { - return false; - } - } - - /** - * Validates the expressionfield of a given IExpression - * - * @param expression The expression whose fields are validated - * @param connectedVariables Table items from the shortcut widget. (Items needed so that they can be coloured) - * @param configuration configuration where the variable is located - */ - static public void validateExpressionFields(final Resource variable, IExpression expression, Table variableTable) { - - Resource configuration = null; - try { - configuration = SimanticsUI.getSession().syncRequest(new Read() { - - @Override - public Resource perform(ReadGraph graph) throws DatabaseException { - SysdynResource sr = SysdynResource.getInstance(graph); - Resource configuration = variable; - while (configuration != null) { - configuration = graph.getPossibleObject(configuration, Layer0.getInstance(graph).PartOf); - - if(configuration == null || graph.isInstanceOf(configuration, sr.Configuration)) { - break; - } - } - return configuration; - } - }); - } catch (DatabaseException e) { - e.printStackTrace(); - return; - } - - if(configuration == null) - return; - - ExpressionParser parser = new ExpressionParser(new StringReader("")); - Set variables = new HashSet(); - HashMap>> references = new HashMap>>(); - final HashMap>>> ranges = new HashMap>>>(); - HashMap>> forIndices = new HashMap>>(); - HashMap>> enumerationReferences = new HashMap>>(); - HashMap>> functionReferences = new HashMap>>(); - - // Build references and variable array - for(ExpressionField ef : expression.getExpressionFields()) { - ef.resetAnnotations(); - String textString = ef.getExpression(); - parser.ReInit(new StringReader(textString)); - try { - parser.expr(); - HashMap> refs = parser.getReferences(); - references.put(ef, refs); - variables.addAll(refs.keySet()); - - ranges.put(ef, parser.getRanges()); - - forIndices.put(ef, parser.getForIndices()); - - enumerationReferences.put(ef, parser.getEnumerationReferences()); - + */ + Double.parseDouble(expression.trim()); + return true; + } catch (NumberFormatException e) { + return false; + } + } + + /** + * Validates the expressionfield of a given IExpression + * + * @param expression The expression whose fields are validated + * @param connectedVariables Table items from the shortcut widget. (Items needed so that they can be coloured) + * @param configuration configuration where the variable is located + */ + static public void validateExpressionFields(final Resource variable, IExpression expression, Table variableTable) { + + Resource configuration = null; + try { + configuration = SimanticsUI.getSession().syncRequest(new Read() { + + @Override + public Resource perform(ReadGraph graph) throws DatabaseException { + SysdynResource sr = SysdynResource.getInstance(graph); + Resource configuration = variable; + while (configuration != null) { + configuration = graph.getPossibleObject(configuration, Layer0.getInstance(graph).PartOf); + + if(configuration == null || graph.isInstanceOf(configuration, sr.Configuration)) { + break; + } + } + return configuration; + } + }); + } catch (DatabaseException e) { + e.printStackTrace(); + return; + } + + if(configuration == null) + return; + + ExpressionParser parser = new ExpressionParser(new StringReader("")); + Set variables = new HashSet(); + HashMap>> references = new HashMap>>(); + final HashMap>>> ranges = new HashMap>>>(); + HashMap>> forIndices = new HashMap>>(); + HashMap>> enumerationReferences = new HashMap>>(); + HashMap>> functionReferences = new HashMap>>(); + + // Build references and variable array + for(ExpressionField ef : expression.getExpressionFields()) { + ef.resetAnnotations(); + String textString = ef.getExpression(); + parser.ReInit(new StringReader(textString)); + try { + parser.expr(); + HashMap> refs = parser.getReferences(); + references.put(ef, refs); + variables.addAll(refs.keySet()); + + ranges.put(ef, parser.getRanges()); + + forIndices.put(ef, parser.getForIndices()); + + enumerationReferences.put(ef, parser.getEnumerationReferences()); + functionReferences.put(ef, parser.getFunctionCallReferences()); - - } catch (ParseException e1) { - ef.setSyntaxError(e1.currentToken, "Syntax Error"); - } catch (TokenMgrError err) { - ef.setSyntaxError(0, textString.length(), ExpressionField.SYNTAX_ERROR, "Expression contains unsupported characters"); - } - } + + } catch (ParseException e1) { + ef.setSyntaxError(e1.currentToken, "Syntax Error"); + } catch (TokenMgrError err) { + ef.setSyntaxError(0, textString.length(), ExpressionField.SYNTAX_ERROR, "Expression contains unsupported characters"); + } + } - final HashMap modelVariables = new HashMap(); + final HashMap modelVariables = new HashMap(); HashSet ignoreVariables = new HashSet(); - if(!variables.isEmpty() || !functionReferences.isEmpty()) { - Set noSuchVariables = new HashSet(); - SysdynModelManager sdm = SysdynModelManager.getInstance(SimanticsUI.getSession()); - SysdynModel model = sdm.getModel(configuration); - try { - model.update(); - } catch (DatabaseException e1) { - e1.printStackTrace(); - } + if(!variables.isEmpty() || !functionReferences.isEmpty()) { + Set noSuchVariables = new HashSet(); + SysdynModelManager sdm = SysdynModelManager.getInstance(SimanticsUI.getSession()); + SysdynModel model = sdm.getModel(configuration); + try { + model.update(); + } catch (DatabaseException e1) { + e1.printStackTrace(); + } - Configuration conf = model.getConfiguration(); - ArrayList elements = conf.getElements(); - for(IElement e : elements) { - if(e instanceof Variable) { - Variable v = (Variable) e; - modelVariables.put(v.getName(), v); - } else if(e instanceof Module) { - ignoreVariables.add(((Module)e).getName()); - } - } + Configuration conf = model.getConfiguration(); + ArrayList elements = conf.getElements(); + for(IElement e : elements) { + if(e instanceof Variable) { + Variable v = (Variable) e; + modelVariables.put(v.getName(), v); + } else if(e instanceof Module) { + ignoreVariables.add(((Module)e).getName()); + } + } - // VARIABLE NAMES - - if(variables.contains("time")) - variables.remove("time"); - - // Examine sheets - for(ExpressionField ef : functionReferences.keySet()) { - for(String key : functionReferences.get(ef).keySet()) { - String[] parts = key.split("\\."); - Object current = conf; - for(int i = 0; i < parts.length && current != null; i++) { - current = getElement(current, parts[i]); - } - if(current != null && current instanceof Sheet) { - Sheet sheet = (Sheet) current; - String e = ef.getExpression(); - int start = 0, end = 0, call = 0; - String cellOrRange = null; - while((call = e.indexOf(key, end)) >= 0) { - start = e.indexOf("(", call) +1; - end = e.indexOf(")", start); - if(start < 0 || end < 0 || end < start) { - break; - } - Pattern p = Pattern.compile("[-\\+\\*\\/\\(\\)\\{\\}\\[\\],\\.\\t\\n\\r\\f]"); - cellOrRange = e.substring(start, end); - Matcher m = p.matcher(cellOrRange); - if (m.find() || cellOrRange.split(":").length > 2) { - ef.setSyntaxError(start, end - start, ExpressionField.SYNTAX_ERROR, "Not a valid cell or range"); - } - } - - List tokens = functionReferences.get(ef).get(key); - for(Token cell : tokens) { - List refs = references.get(ef).get(cell.image); - if(refs != null) - refs.remove(cell); - if(!sheet.getCells().containsKey(cell.image)) - ef.setSyntaxError(cell.image, "Invalid cell", cell.beginLine, cell.beginColumn, cell.endLine, cell.endColumn); - } - - } - } - } + // VARIABLE NAMES - for(String v : variables) { - - if(modelVariables.get(v) instanceof Enumeration || modelVariables.get(v) instanceof Sheet) { - ignoreVariables.add(v); - } - - // Reference to some other module, spreadsheet or enumeration - if(v.contains(".")) { - String[] parts = v.split("\\."); - Object parent = conf; - for(int i = 0; i < parts.length && parent != null; i++) { - parent = getElement(parent, parts[i]); - } - if(parent == null) { - noSuchVariables.add(v); - } else { - ignoreVariables.add(v); - } - } else if(!modelVariables.keySet().contains(v)) { - noSuchVariables.add(v); - } - } + if(variables.contains("time")) + variables.remove("time"); - if(!noSuchVariables.isEmpty()) { - noSuchVariables.removeAll(ignoreVariables); - // remove no such variables from variable list - for(String s : noSuchVariables) - variables.remove(s); - // create annotations - HashMap> positions = getPositionsForVariables(references, noSuchVariables); - for(ExpressionField ef : positions.keySet()) { - ef.setNoSuchVariableAnnotations(positions.get(ef)); - } - } - } - - // Check that the variables that exist have connections and the connected variables have references in the expressions - if(!(expression instanceof StockExpression)) { - - if(variableTable != null && !variableTable.isDisposed()) { - TableItem[] connectedVariables = variableTable.getItems(); - for(TableItem ti : connectedVariables) { - if(!variables.contains(ti.getText())) { - ti.setForeground(new Color(ti.getDisplay(), 255,125,0)); - } else { - ti.setForeground(new Color(ti.getDisplay(), 0, 0, 0)); - variables.remove(ti.getText()); - } - } - } - - // Remove all enumerations and sheets, they cannot have connections - variables.removeAll(ignoreVariables); + // Examine sheets + for(ExpressionField ef : functionReferences.keySet()) { + for(String key : functionReferences.get(ef).keySet()) { + String[] parts = key.split("\\."); + Object current = conf; + for(int i = 0; i < parts.length && current != null; i++) { + current = getElement(current, parts[i]); + } + if(current != null && current instanceof Sheet) { + Sheet sheet = (Sheet) current; + String e = ef.getExpression(); + int start = 0, end = 0, call = 0; + String cellOrRange = null; + while((call = e.indexOf(key, end)) >= 0) { + start = e.indexOf("(", call) +1; + end = e.indexOf(")", start); + if(start < 0 || end < 0 || end < start) { + break; + } + Pattern p = Pattern.compile("[-\\+\\*\\/\\(\\)\\{\\}\\[\\],\\.\\t\\n\\r\\f]"); + cellOrRange = e.substring(start, end); + Matcher m = p.matcher(cellOrRange); + if (m.find() || cellOrRange.split(":").length > 2) { + ef.setSyntaxError(start, end - start, ExpressionField.SYNTAX_ERROR, "Not a valid cell or range"); + } + } - if(!variables.isEmpty()) { - HashMap> positions = getPositionsForVariables(references, variables); - for(ExpressionField ef : positions.keySet()) { - ef.setMissingLinkAnnotations(positions.get(ef)); - } + List tokens = functionReferences.get(ef).get(key); + for(Token cell : tokens) { + List refs = references.get(ef).get(cell.image); + if(refs != null) + refs.remove(cell); + if(!sheet.getCells().containsKey(cell.image)) + ef.setSyntaxError(cell.image, "Invalid cell", cell.beginLine, cell.beginColumn, cell.endLine, cell.endColumn); + } - } - } - - - - HashMap> errors = new HashMap>(); - HashMap result = null; - - for(final ExpressionField ef : ranges.keySet()) { - - // RANGES - try { - result = SimanticsUI.getSession().syncRequest(new Read>() { - - @Override - public HashMap perform(ReadGraph graph) throws DatabaseException { - HashMap result = new HashMap(); - for(String s : ranges.get(ef).keySet()) { - if(ranges.get(ef).containsKey(s)) { - for(List l : ranges.get(ef).get(s)) { - String[] ss = new String[l.size()]; - for(int i = 0; i < l.size(); i++) { - ss[i] = l.get(i).image; - } - Map invalidRanges = ArrayVariableUtils.isRangeValid(graph, modelVariables.get(s), ss); - if(invalidRanges != null && !invalidRanges.isEmpty()) { - for(Integer i : invalidRanges.keySet()) { - result.put(l.get(i), invalidRanges.get(i)); - } - } - } - } - } - return result; - } - }); - } catch (DatabaseException e) { - e.printStackTrace(); - } - - // FOR-INDICES - - HashMap> indexList = forIndices.get(ef); - for(Token t : indexList.keySet()) { - boolean isFound = false; - for(Token rt : indexList.get(t)) { - if(rt.image.equals(t.image)) { - isFound = true; - // remove range token from invalid ranges - result.remove(rt); - break; - } - } - if(!isFound) { - result.put(t, "Invalid index"); - } - } - - // ENUMERATION REFERENCES IN FOR-LOOPS - HashMap> enumRefList = enumerationReferences.get(ef); - for(String enumeration : enumRefList.keySet()) { - for(Token et : enumRefList.get(enumeration)) { - Variable v = modelVariables.get(enumeration); - if(v != null && v instanceof Enumeration) { - boolean isFound = false; - Enumeration e = (Enumeration)v; - - if(enumeration.equals(et.image) || - "size".equals(et.image) || - "elements".equals(et.image)){ - // The full enumeration - isFound = true; - } else { - for(EnumerationIndex ei : e.getEnumerationIndexes()) { - if(ei.getName().equals(et.image)) { - isFound = true; - break; - } - } - } - - if(!isFound) { - StringBuilder sb = new StringBuilder(); - sb.append("Enumeration "); - sb.append(enumeration); - sb.append(" has no such index.\nAvailable indexes are: "); - Iterator iterator = e.getEnumerationIndexes().iterator(); - while(iterator.hasNext()) { - sb.append(iterator.next().getName()); - if(iterator.hasNext()) - sb.append(", "); - } - result.put(et, sb.toString()); - } - - - } else { - result.put(et, "No such enumeration (" + enumeration + ")"); - } - } - } - - errors.put(ef, result); - - - } - - for(ExpressionField ef : ranges.keySet()) { - HashMap tokens = errors.get(ef); - if(tokens == null || tokens.isEmpty()) continue; - for(Token t : tokens.keySet()) { - ef.setSyntaxError(t, tokens.get(t)); - } - } - - } - - static private Object getElement(Object parent, String name) { - Configuration c = null; - if(parent instanceof Module) { + } + } + } + + for(String v : variables) { + + if(modelVariables.get(v) instanceof Enumeration || modelVariables.get(v) instanceof Sheet) { + ignoreVariables.add(v); + } + + // Reference to some other module, spreadsheet or enumeration + if(v.contains(".")) { + String[] parts = v.split("\\."); + Object parent = conf; + for(int i = 0; i < parts.length && parent != null; i++) { + parent = getElement(parent, parts[i]); + } + if(parent == null) { + noSuchVariables.add(v); + } else { + ignoreVariables.add(v); + } + } else if(!modelVariables.keySet().contains(v)) { + noSuchVariables.add(v); + } + } + + if(!noSuchVariables.isEmpty()) { + noSuchVariables.removeAll(ignoreVariables); + // remove no such variables from variable list + for(String s : noSuchVariables) + variables.remove(s); + // create annotations + HashMap> positions = getPositionsForVariables(references, noSuchVariables); + for(ExpressionField ef : positions.keySet()) { + ef.setNoSuchVariableAnnotations(positions.get(ef)); + } + } + } + + // Check that the variables that exist have connections and the connected variables have references in the expressions + if(!(expression instanceof StockExpression)) { + + if(variableTable != null && !variableTable.isDisposed()) { + TableItem[] connectedVariables = variableTable.getItems(); + for(TableItem ti : connectedVariables) { + if(!variables.contains(ti.getText())) { + ti.setForeground(new Color(ti.getDisplay(), 255,125,0)); + } else { + ti.setForeground(new Color(ti.getDisplay(), 0, 0, 0)); + variables.remove(ti.getText()); + } + } + } + + // Remove all enumerations and sheets, they cannot have connections + variables.removeAll(ignoreVariables); + + if(!variables.isEmpty()) { + HashMap> positions = getPositionsForVariables(references, variables); + for(ExpressionField ef : positions.keySet()) { + ef.setMissingLinkAnnotations(positions.get(ef)); + } + + } + } + + + + HashMap> errors = new HashMap>(); + HashMap result = null; + + for(final ExpressionField ef : ranges.keySet()) { + + // RANGES + try { + result = SimanticsUI.getSession().syncRequest(new Read>() { + + @Override + public HashMap perform(ReadGraph graph) throws DatabaseException { + HashMap result = new HashMap(); + for(String s : ranges.get(ef).keySet()) { + if(ranges.get(ef).containsKey(s)) { + for(List l : ranges.get(ef).get(s)) { + String[] ss = new String[l.size()]; + for(int i = 0; i < l.size(); i++) { + ss[i] = l.get(i).image; + } + Map invalidRanges = ArrayVariableUtils.isRangeValid(graph, modelVariables.get(s), ss); + if(invalidRanges != null && !invalidRanges.isEmpty()) { + for(Integer i : invalidRanges.keySet()) { + result.put(l.get(i), invalidRanges.get(i)); + } + } + } + } + } + return result; + } + }); + } catch (DatabaseException e) { + e.printStackTrace(); + } + + // FOR-INDICES + + HashMap> indexList = forIndices.get(ef); + for(Token t : indexList.keySet()) { + boolean isFound = false; + if(indexList.get(t) != null) { + for(Token rt : indexList.get(t)) { + if(rt.image.equals(t.image)) { + isFound = true; + // remove range token from invalid ranges + result.remove(rt); + break; + } + } + } + if(!isFound) { + result.put(t, "Invalid index"); + } + } + + // ENUMERATION REFERENCES IN FOR-LOOPS + HashMap> enumRefList = enumerationReferences.get(ef); + for(String enumeration : enumRefList.keySet()) { + for(Token et : enumRefList.get(enumeration)) { + Variable v = modelVariables.get(enumeration); + if(v != null && v instanceof Enumeration) { + boolean isFound = false; + Enumeration e = (Enumeration)v; + + if(enumeration.equals(et.image) || + "size".equals(et.image) || + "elements".equals(et.image)){ + // The full enumeration + isFound = true; + } else { + for(EnumerationIndex ei : e.getEnumerationIndexes()) { + if(ei.getName().equals(et.image)) { + isFound = true; + break; + } + } + } + + if(!isFound) { + StringBuilder sb = new StringBuilder(); + sb.append("Enumeration "); + sb.append(enumeration); + sb.append(" has no such index.\nAvailable indexes are: "); + Iterator iterator = e.getEnumerationIndexes().iterator(); + while(iterator.hasNext()) { + sb.append(iterator.next().getName()); + if(iterator.hasNext()) + sb.append(", "); + } + result.put(et, sb.toString()); + } + + + } else { + result.put(et, "No such enumeration (" + enumeration + ")"); + } + } + } + + errors.put(ef, result); + + + } + + for(ExpressionField ef : ranges.keySet()) { + HashMap tokens = errors.get(ef); + if(tokens == null || tokens.isEmpty()) continue; + for(Token t : tokens.keySet()) { + ef.setSyntaxError(t, tokens.get(t)); + } + } + + } + + static private Object getElement(Object parent, String name) { + Configuration c = null; + if(parent instanceof Module) { Module m = (Module)parent; c = m.getType().getConfiguration(); - } else if (parent instanceof Configuration) { - c = (Configuration)parent; - } - - if(c != null) { - for(IElement e : c.getElements()) { - if(e instanceof Variable && ((Variable)e).getName().equals(name)) { - return e; - } else if(e instanceof Module && ((Module)e).getName().equals(name)) { + } else if (parent instanceof Configuration) { + c = (Configuration)parent; + } + + if(c != null) { + for(IElement e : c.getElements()) { + if(e instanceof Variable && ((Variable)e).getName().equals(name)) { + return e; + } else if(e instanceof Module && ((Module)e).getName().equals(name)) { return e; - } - } - } else if(parent instanceof Sheet) { + } + } + } else if(parent instanceof Sheet) { Sheet s = (Sheet)parent; for(String key : s.getCells().keySet()) { if(key.equals(name)) { return Boolean.TRUE; } } - + } else if(parent instanceof Enumeration) { Enumeration e = (Enumeration)parent; if(name.equals("size") || name.equals("elements")) return Boolean.TRUE; - + for(EnumerationIndex ei : e.getEnumerationIndexes()) { if(ei.getName().equals(name)) { return Boolean.TRUE; } } - + } - - return null; - } - - @SuppressWarnings("unchecked") - static private HashMap> getPositionsForVariables(HashMap>> references, Set variables) { - HashMap> result = new HashMap>(); - for(String s : variables) { - List tlist = new ArrayList(); - for(ExpressionField ef : references.keySet()) { - ArrayList positions = new ArrayList(); - tlist = references.get(ef).get(s); - if(tlist != null) - for(Token t : tlist) { - StyledText st = ef.getSourceViewer().getTextWidget(); - int start = st.getOffsetAtLine(t.beginLine - 1) + t.beginColumn - 1; - int offset = st.getOffsetAtLine(t.endLine - 1) + t.endColumn - start; - positions.add(new Position( - start, - offset)); - } - if(result.keySet().contains(ef)) { - result.get(ef).addAll((ArrayList)positions.clone()); - } else { - result.put(ef, (ArrayList)positions.clone()); - } - } - } - return result; - } + + return null; + } + + @SuppressWarnings("unchecked") + static private HashMap> getPositionsForVariables(HashMap>> references, Set variables) { + HashMap> result = new HashMap>(); + for(String s : variables) { + List tlist = new ArrayList(); + for(ExpressionField ef : references.keySet()) { + ArrayList positions = new ArrayList(); + tlist = references.get(ef).get(s); + if(tlist != null) + for(Token t : tlist) { + StyledText st = ef.getSourceViewer().getTextWidget(); + int start = st.getOffsetAtLine(t.beginLine - 1) + t.beginColumn - 1; + int offset = st.getOffsetAtLine(t.endLine - 1) + t.endColumn - start; + positions.add(new Position( + start, + offset)); + } + if(result.keySet().contains(ef)) { + result.get(ef).addAll((ArrayList)positions.clone()); + } else { + result.put(ef, (ArrayList)positions.clone()); + } + } + } + return result; + } } diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/utils/VariableNameUtils.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/utils/VariableNameUtils.java index 29efea03..9cec3f2b 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/utils/VariableNameUtils.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/utils/VariableNameUtils.java @@ -57,13 +57,13 @@ public class VariableNameUtils { Resource configuration = graph.getSingleObject(variable, l0.PartOf); for(Resource r : graph.getObjects(configuration, l0.ConsistsOf)) { if(graph.isInstanceOf(r, sr.IndependentVariable)) { - Resource expressions = graph.getPossibleObject(r, sr.HasExpressions); + Resource expressions = graph.getPossibleObject(r, sr.Variable_expressions); if(expressions == null) continue; List expressionList = OrderedSetUtils.toList(graph, expressions); for(Resource s : expressionList) { for(Resource p : graph.getPredicates(s)) { Resource o = graph.getPossibleObject(s, p); - if(o != null && graph.isInstanceOf(o, l0.String) && !p.equals(sr.HasArrayRange)) { + if(o != null && graph.isInstanceOf(o, l0.String) && !p.equals(sr.Expression_arrayRange)) { String string = graph.getRelatedValue(s, p); String replaced = replaceAllWords(string, originalName, newName); graph.claimLiteral(s, p, replaced); diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/validation/ValidationUtils.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/validation/ValidationUtils.java index 5ad0123a..3826bbc9 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/validation/ValidationUtils.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/validation/ValidationUtils.java @@ -55,7 +55,7 @@ public class ValidationUtils { if(expressionList == null || expressionList.isEmpty()) throw new UndefinedExpressionException(); for(Resource expression : expressionList) { - Collection statements = graph.getStatements(expression, sr.HasEquation); + Collection statements = graph.getStatements(expression, sr.Expression_equation); if(statements.isEmpty()) throw new UndefinedExpressionException(); @@ -94,7 +94,7 @@ public class ValidationUtils { */ private static List getExpressions(ReadGraph graph, Resource r) throws DatabaseException { SysdynResource sr = SysdynResource.getInstance(graph); - Resource hasExpressions = graph.getPossibleObject(r, sr.HasExpressions); + Resource hasExpressions = graph.getPossibleObject(r, sr.Variable_expressions); if(hasExpressions != null) return OrderedSetUtils.toList(graph, hasExpressions); else @@ -116,7 +116,7 @@ public class ValidationUtils { SysdynResource sr = SysdynResource.getInstance(graph); Layer0 l0 = Layer0.getInstance(graph); - Collection dependencies = graph.getObjects(r, sr.IsHeadOf); + Collection dependencies = graph.getObjects(r, sr.Variable_isHeadOf); for(Resource d : dependencies) { if(graph.isInstanceOf(d, sr.Dependency)) { diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/wizards/modules/WizardModulesExportPage.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/wizards/modules/WizardModulesExportPage.java index 1bfea7c3..d14135a9 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/wizards/modules/WizardModulesExportPage.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/wizards/modules/WizardModulesExportPage.java @@ -392,21 +392,21 @@ public class WizardModulesExportPage extends WizardPage { ArrayList> replacements = new ArrayList>(); for(Resource enumeration : graph.syncRequest(new ObjectsWithType(configuration, l0.ConsistsOf, sr.Enumeration))) { - if(graph.hasStatement(enumeration, sr.ReplacedEnumeration_Inverse)) { - for(Resource replacement : graph.getObjects(enumeration, sr.ReplacedEnumeration_Inverse)) { + if(graph.hasStatement(enumeration, sr.Redeclaration_replacedEnumeration_Inverse)) { + for(Resource replacement : graph.getObjects(enumeration, sr.Redeclaration_replacedEnumeration_Inverse)) { replacements.add(new Pair(enumeration, replacement)); } } } for(Pair replacement : replacements) - graph.deny(replacement.first, sr.ReplacedEnumeration_Inverse, replacement.second); + graph.deny(replacement.first, sr.Redeclaration_replacedEnumeration_Inverse, replacement.second); TransferableGraph1 tg = graph.syncRequest(new TransferableGraphRequest2(roots, component)); Files.createFile(new File(path), Bindings.getBindingUnchecked(TransferableGraph1.class), tg); for(Pair replacement : replacements) - graph.claim(replacement.first, sr.ReplacedEnumeration_Inverse, replacement.second); + graph.claim(replacement.first, sr.Redeclaration_replacedEnumeration_Inverse, replacement.second); } catch (RuntimeBindingConstructionException e) { e.printStackTrace(); diff --git a/org.simantics.sysdyn/src/org/simantics/sysdyn/adapter/ChildVariable.java b/org.simantics.sysdyn/src/org/simantics/sysdyn/adapter/ChildVariable.java index a68c2eef..31dc733e 100644 --- a/org.simantics.sysdyn/src/org/simantics/sysdyn/adapter/ChildVariable.java +++ b/org.simantics.sysdyn/src/org/simantics/sysdyn/adapter/ChildVariable.java @@ -47,13 +47,13 @@ public class ChildVariable extends AbstractChildVariable { SysdynResource sr = SysdynResource.getInstance(graph); if(this.resource == null) return null; //FIXME: doesn't support multiple expressions - Resource expressions = graph.getPossibleObject(this.resource, sr.HasExpressions); + Resource expressions = graph.getPossibleObject(this.resource, sr.Variable_expressions); if(expressions == null) return null; List expressionList = OrderedSetUtils.toList(graph, expressions); Resource expression = expressionList.get(0); if(expression == null) return null; if(!graph.isInstanceOf(expression, sr.ParameterExpression)) return null; - String text = graph.getPossibleRelatedValue(expression, sr.HasEquation); + String text = graph.getPossibleRelatedValue(expression, sr.Expression_equation); if(text == null) return null; Double value = Double.parseDouble(text); return (T)value; @@ -65,13 +65,13 @@ public class ChildVariable extends AbstractChildVariable { SysdynResource sr = SysdynResource.getInstance(graph); if(this.resource == null) return; //FIXME: doesn't support multiple expressions - Resource expressions = graph.getPossibleObject(this.resource, sr.HasExpressions); + Resource expressions = graph.getPossibleObject(this.resource, sr.Variable_expressions); if(expressions == null) return; List expressionList = OrderedSetUtils.toList(graph, expressions); Resource expression = expressionList.get(0); if(expression == null) return; if(!graph.isInstanceOf(expression, sr.ParameterExpression)) return; - graph.claimLiteral(expression, sr.HasEquation, object.toString(), Bindings.STRING); + graph.claimLiteral(expression, sr.Expression_equation, object.toString(), Bindings.STRING); } // FIXME: Support properties! This is just for the system to work like it used to. diff --git a/org.simantics.sysdyn/src/org/simantics/sysdyn/adapter/VariableRVIUtils.java b/org.simantics.sysdyn/src/org/simantics/sysdyn/adapter/VariableRVIUtils.java index c5f05085..62118077 100644 --- a/org.simantics.sysdyn/src/org/simantics/sysdyn/adapter/VariableRVIUtils.java +++ b/org.simantics.sysdyn/src/org/simantics/sysdyn/adapter/VariableRVIUtils.java @@ -79,12 +79,12 @@ public class VariableRVIUtils { private static void traverseIndexes(ReadGraph g, String rvi, HashMap rvis, List arrayIndexes, Resource currentEnumeration, String indexesSoFar, String indexNamesSoFar) throws DatabaseException { SysdynResource sr = SysdynResource.getInstance(g); // Enumeration indexes of the current enumeration (e.g. the first EnumIndexes in Var[EnumIndexes, EnumIndexes, EnumIndexes]) - Resource enumerationIndexes = g.getPossibleObject(currentEnumeration, sr.HasEnumerationIndexes); + Resource enumerationIndexes = g.getPossibleObject(currentEnumeration, sr.Enumeration_enumerationIndexes); if(enumerationIndexes == null) return; List indexes = OrderedSetUtils.toList(g, enumerationIndexes); for(int i = 0; i < indexes.size(); i++) { - Boolean b = g.getPossibleRelatedValue(indexes.get(i), sr.ShowEnumerationIndexInCharts, Bindings.BOOLEAN); + Boolean b = g.getPossibleRelatedValue(indexes.get(i), sr.EnumerationIndex_showEnumerationIndexInCharts, Bindings.BOOLEAN); // If this index is not wanted to be shown in charts, the recursion does not go any further and rvis.put() is not called for this enumeration if(Boolean.TRUE.equals(b)) { int arrayIndex = arrayIndexes.indexOf(currentEnumeration); @@ -127,11 +127,11 @@ public class VariableRVIUtils { // If the variable is located in a module, it might have overridden (redeclared) enumerations boolean somethingIsReplaced = false; // Find all redeclarations - for(Resource redeclaration : graph.syncRequest(new ObjectsWithType(module, sr.HasRedeclaration, sr.Redeclaration))) { - Resource replaced = graph.getSingleObject(redeclaration, sr.ReplacedEnumeration); + for(Resource redeclaration : graph.syncRequest(new ObjectsWithType(module, sr.Module_redeclaration, sr.Redeclaration))) { + Resource replaced = graph.getSingleObject(redeclaration, sr.Redeclaration_replacedEnumeration); if(enumerations.contains(replaced)) { // Replace the redelcared enumeration in enumerations -list with the replacing enumeration - enumerations.add(enumerations.indexOf(replaced), graph.getSingleObject(redeclaration, sr.ReplacingEnumeration)); + enumerations.add(enumerations.indexOf(replaced), graph.getSingleObject(redeclaration, sr.Redeclaration_replacingEnumeration)); enumerations.remove(replaced); somethingIsReplaced = true; } @@ -168,7 +168,7 @@ public class VariableRVIUtils { Resource r = variable.getPropertyValue(graph, Variables.REPRESENTS); - Resource arrayIndexes = graph.getPossibleObject(r, sr.HasArrayIndexes); + Resource arrayIndexes = graph.getPossibleObject(r, sr.Variable_arrayIndexes); if(arrayIndexes == null) { // If variable is single-dimensional, use the same rvi rvis.put(rvi, rvi); diff --git a/org.simantics.sysdyn/src/org/simantics/sysdyn/manager/FunctionUtils.java b/org.simantics.sysdyn/src/org/simantics/sysdyn/manager/FunctionUtils.java index e3d02a2c..91fb1cd9 100644 --- a/org.simantics.sysdyn/src/org/simantics/sysdyn/manager/FunctionUtils.java +++ b/org.simantics.sysdyn/src/org/simantics/sysdyn/manager/FunctionUtils.java @@ -183,7 +183,7 @@ public class FunctionUtils { String name = NameUtils.getSafeName(graph, externalFunction); if(name.endsWith(".o") || name.endsWith(".a")) { FileOutputStream fos = new FileOutputStream(dir + "\\" + name); - byte[] fileBArray = graph.getPossibleRelatedValue(externalFunction, sr.HasExternalFile, Bindings.BYTE_ARRAY); + byte[] fileBArray = graph.getPossibleRelatedValue(externalFunction, sr.ExternalFunctionFile_externalFile, Bindings.BYTE_ARRAY); fos.write(fileBArray); fos.close(); } @@ -282,7 +282,7 @@ public class FunctionUtils { SysdynResource sr = SysdynResource.getInstance(graph); for(Resource function : graph.syncRequest(new ObjectsWithType(library, l0.ConsistsOf, sr.SysdynModelicaFunction))) { String name = NameUtils.getSafeName(graph, function); - String functionCode = graph.getRelatedValue(function, sr.HasModelicaFunctionCode); + String functionCode = graph.getRelatedValue(function, sr.SysdynModelicaFunction_modelicaFunctionCode); stream.println("function " + name); stream.println(functionCode); stream.println("end " + name + ";\n"); diff --git a/org.simantics.sysdyn/src/org/simantics/sysdyn/manager/SysdynExperiment.java b/org.simantics.sysdyn/src/org/simantics/sysdyn/manager/SysdynExperiment.java index 2dbe53d5..fec55b04 100644 --- a/org.simantics.sysdyn/src/org/simantics/sysdyn/manager/SysdynExperiment.java +++ b/org.simantics.sysdyn/src/org/simantics/sysdyn/manager/SysdynExperiment.java @@ -91,8 +91,8 @@ public class SysdynExperiment extends Experiment implements IDynamicExperiment { l0.HasLabel, name, l0.HasName, name, l0.PartOf, model, - sr.HasResultFile, file.getAbsolutePath()); - graph.claim(experiment, sr.HasResult, res); + sr.Result_resultFile, file.getAbsolutePath()); + graph.claim(experiment, sr.Experiment_result, res); sysdynModel.getSysdynResult().saveToFile(file); } }); diff --git a/org.simantics.sysdyn/src/org/simantics/sysdyn/manager/SysdynModel.java b/org.simantics.sysdyn/src/org/simantics/sysdyn/manager/SysdynModel.java index 98c328a1..2bb5a165 100644 --- a/org.simantics.sysdyn/src/org/simantics/sysdyn/manager/SysdynModel.java +++ b/org.simantics.sysdyn/src/org/simantics/sysdyn/manager/SysdynModel.java @@ -201,12 +201,12 @@ public class SysdynModel implements IMappingListener, IModel { Resource model = graph.getSingleObject(getConfigurationResource(), SIMU.IsConfigurationOf); Collection experiments = graph.syncRequest(new ObjectsWithType(model, l0.ConsistsOf, sr.Experiment)); for(Resource experiment : experiments) { - Collection experimentResults = graph.getObjects(experiment, sr.HasResult); + Collection experimentResults = graph.getObjects(experiment, sr.Experiment_result); for(Resource result : experimentResults) { - if(graph.hasStatement(result, sr.ShowResult)) { + if(graph.hasStatement(result, sr.Result_showResult)) { SysdynResult sysdynResult = new SysdynResult( (String) graph.getPossibleRelatedValue(result, l0.HasLabel), - (String) graph.getPossibleRelatedValue(result, sr.HasResultFile)); + (String) graph.getPossibleRelatedValue(result, sr.Result_resultFile)); activeResults.add(sysdynResult); } } diff --git a/org.simantics.sysdyn/src/org/simantics/sysdyn/manager/SysdynPlaybackExperiment.java b/org.simantics.sysdyn/src/org/simantics/sysdyn/manager/SysdynPlaybackExperiment.java index 814c0beb..ad5ce4e0 100644 --- a/org.simantics.sysdyn/src/org/simantics/sysdyn/manager/SysdynPlaybackExperiment.java +++ b/org.simantics.sysdyn/src/org/simantics/sysdyn/manager/SysdynPlaybackExperiment.java @@ -230,9 +230,9 @@ public class SysdynPlaybackExperiment extends SysdynExperiment implements IDynam Double[] numbers = new Double[3]; Resource model = getModel(); SysdynResource sr = SysdynResource.getInstance(graph); - numbers[0] = graph.getRelatedValue(model, sr.HasStartTime); - numbers[1] = graph.getRelatedValue(model, sr.HasStopTime); - numbers[2] = graph.getPossibleRelatedValue(model, sr.HasOutputInterval); + numbers[0] = graph.getRelatedValue(model, sr.SysdynModel_startTime); + numbers[1] = graph.getRelatedValue(model, sr.SysdynModel_stopTime); + numbers[2] = graph.getPossibleRelatedValue(model, sr.SysdynModel_outputInterval); PlaybackConfiguration config = new PlaybackConfiguration(); config.simulationDuration = numbers[1] - numbers[0] - time; diff --git a/org.simantics.sysdyn/src/org/simantics/sysdyn/mdlImport/mdlElements/Auxiliary.java b/org.simantics.sysdyn/src/org/simantics/sysdyn/mdlImport/mdlElements/Auxiliary.java index 375878d2..62c3764b 100644 --- a/org.simantics.sysdyn/src/org/simantics/sysdyn/mdlImport/mdlElements/Auxiliary.java +++ b/org.simantics.sysdyn/src/org/simantics/sysdyn/mdlImport/mdlElements/Auxiliary.java @@ -26,7 +26,7 @@ public class Auxiliary extends Variable { SysdynResource sr = SysdynResource.getInstance(graph); Resource e = GraphUtils.create2(graph, sr.NormalExpression, - sr.HasEquation, ImportUtils.escapeExpression(expression.getExpression()).trim()); + sr.Expression_equation, ImportUtils.escapeExpression(expression.getExpression()).trim()); return e; } diff --git a/org.simantics.sysdyn/src/org/simantics/sysdyn/mdlImport/mdlElements/Dependency.java b/org.simantics.sysdyn/src/org/simantics/sysdyn/mdlImport/mdlElements/Dependency.java index 65b4c60a..1b5bdc8e 100644 --- a/org.simantics.sysdyn/src/org/simantics/sysdyn/mdlImport/mdlElements/Dependency.java +++ b/org.simantics.sysdyn/src/org/simantics/sysdyn/mdlImport/mdlElements/Dependency.java @@ -40,7 +40,7 @@ public class Dependency extends Connection { if(connection != null) { ModelingResources mr = ModelingResources.getInstance(graph); Resource diagramConnection = graph.getSingleObject(connection, mr.ConnectionToDiagramConnection); - graph.claimLiteral(diagramConnection, sr.angle, angle); + graph.claimLiteral(diagramConnection, sr.Dependency_angle, angle); } } catch (DatabaseException e) { diff --git a/org.simantics.sysdyn/src/org/simantics/sysdyn/mdlImport/mdlElements/Function.java b/org.simantics.sysdyn/src/org/simantics/sysdyn/mdlImport/mdlElements/Function.java index faadc02f..43afed7e 100644 --- a/org.simantics.sysdyn/src/org/simantics/sysdyn/mdlImport/mdlElements/Function.java +++ b/org.simantics.sysdyn/src/org/simantics/sysdyn/mdlImport/mdlElements/Function.java @@ -46,7 +46,7 @@ public class Function extends Variable { sb.append(" output Real result;\n"); sb.append("algorithm\n"); sb.append(" result := interpolate(a, " + expressions.get(0).getExpression() + ");"); - graph.claimLiteral(function, sr.HasModelicaFunctionCode, sb.toString()); + graph.claimLiteral(function, sr.SysdynModelicaFunction_modelicaFunctionCode, sb.toString()); } graph.claim(parent, l0.ConsistsOf, function); diff --git a/org.simantics.sysdyn/src/org/simantics/sysdyn/mdlImport/mdlElements/Model.java b/org.simantics.sysdyn/src/org/simantics/sysdyn/mdlImport/mdlElements/Model.java index 48cc1fce..3e0caf6d 100644 --- a/org.simantics.sysdyn/src/org/simantics/sysdyn/mdlImport/mdlElements/Model.java +++ b/org.simantics.sysdyn/src/org/simantics/sysdyn/mdlImport/mdlElements/Model.java @@ -234,8 +234,8 @@ public class Model implements IWriteableMDLObject { l0.PartOf, parent, l0.HasName, NameUtils.findFreshName(graph, getName(), parent, l0.ConsistsOf, "%s%d"), l0.HasLabel, getName(), - sr.HasStartTime, startTime, - sr.HasStopTime, endTime, + sr.SysdynModel_startTime, startTime, + sr.SysdynModel_stopTime, endTime, l0.IsLinkedTo, sysdyn, l0.IsLinkedTo, layer0 ); diff --git a/org.simantics.sysdyn/src/org/simantics/sysdyn/mdlImport/mdlElements/Stock.java b/org.simantics.sysdyn/src/org/simantics/sysdyn/mdlImport/mdlElements/Stock.java index e3437f38..61f3111b 100644 --- a/org.simantics.sysdyn/src/org/simantics/sysdyn/mdlImport/mdlElements/Stock.java +++ b/org.simantics.sysdyn/src/org/simantics/sysdyn/mdlImport/mdlElements/Stock.java @@ -27,7 +27,7 @@ public class Stock extends Variable { SysdynResource sr = SysdynResource.getInstance(graph); Resource e = GraphUtils.create2(graph, sr.StockExpression, - sr.HasInitialEquation, integralEquation); + sr.StockExpression_initialEquation, integralEquation); return e; } diff --git a/org.simantics.sysdyn/src/org/simantics/sysdyn/mdlImport/mdlElements/Subscript.java b/org.simantics.sysdyn/src/org/simantics/sysdyn/mdlImport/mdlElements/Subscript.java index 40ca4761..a0087d4e 100644 --- a/org.simantics.sysdyn/src/org/simantics/sysdyn/mdlImport/mdlElements/Subscript.java +++ b/org.simantics.sysdyn/src/org/simantics/sysdyn/mdlImport/mdlElements/Subscript.java @@ -53,7 +53,7 @@ public class Subscript extends Variable { Resource enumeration = GraphUtils.create2(graph, sr.Enumeration, l0.HasName, this.getName(), - sr.HasEnumerationIndexes, enumerationIndexes); + sr.Enumeration_enumerationIndexes, enumerationIndexes); graph.claim(parent, l0.ConsistsOf, enumeration); diff --git a/org.simantics.sysdyn/src/org/simantics/sysdyn/mdlImport/mdlElements/Valve.java b/org.simantics.sysdyn/src/org/simantics/sysdyn/mdlImport/mdlElements/Valve.java index e3987d15..620ad56b 100644 --- a/org.simantics.sysdyn/src/org/simantics/sysdyn/mdlImport/mdlElements/Valve.java +++ b/org.simantics.sysdyn/src/org/simantics/sysdyn/mdlImport/mdlElements/Valve.java @@ -26,7 +26,7 @@ public class Valve extends Variable { String expressionString = ImportUtils.escapeExpression(expression.getExpression()); Resource e = GraphUtils.create2(graph, sr.NormalExpression, - sr.HasEquation, expressionString.trim()); + sr.Expression_equation, expressionString.trim()); return e; } diff --git a/org.simantics.sysdyn/src/org/simantics/sysdyn/mdlImport/mdlElements/Variable.java b/org.simantics.sysdyn/src/org/simantics/sysdyn/mdlImport/mdlElements/Variable.java index 126dd35e..02c5f706 100644 --- a/org.simantics.sysdyn/src/org/simantics/sysdyn/mdlImport/mdlElements/Variable.java +++ b/org.simantics.sysdyn/src/org/simantics/sysdyn/mdlImport/mdlElements/Variable.java @@ -59,7 +59,7 @@ public abstract class Variable extends Element { Resource variable = GraphUtils.create2(graph, variableType, l0.HasName, ImportUtils.escapeName(name), - sr.HasExpressions, expressionList); + sr.Variable_expressions, expressionList); graph.claim(variable, mr.Mapped, variable); for(Expression e : getExpressions()) { @@ -68,7 +68,7 @@ public abstract class Variable extends Element { Resource expression = getExpression(graph, e); if(e.getRange() != null) { - graph.claimLiteral(expression, sr.HasArrayRange, "[" + e.getRange().trim() + "]"); + graph.claimLiteral(expression, sr.Expression_arrayRange, "[" + e.getRange().trim() + "]"); } OrderedSetUtils.add(graph, expressionList, expression); graph.claim(variable, l0.ConsistsOf, expression); @@ -79,7 +79,7 @@ public abstract class Variable extends Element { if(sub.getResource() != null) OrderedSetUtils.add(graph, arrayIndexList, sub.getResource()); } - graph.claim(variable, sr.HasArrayIndexes, arrayIndexList); + graph.claim(variable, sr.Variable_arrayIndexes, arrayIndexList); } if(units != null && units.length() > 0) diff --git a/org.simantics.sysdyn/src/org/simantics/sysdyn/modelica/ModelicaWriter.java b/org.simantics.sysdyn/src/org/simantics/sysdyn/modelica/ModelicaWriter.java index a9a7be8b..c9cecaf0 100644 --- a/org.simantics.sysdyn/src/org/simantics/sysdyn/modelica/ModelicaWriter.java +++ b/org.simantics.sysdyn/src/org/simantics/sysdyn/modelica/ModelicaWriter.java @@ -182,7 +182,7 @@ public class ModelicaWriter { b.append("// Default values for inputs in modules\n"); for(String moduleLabel : moduleInputs.keySet()) { for(Input input : moduleInputs.get(moduleLabel)) { - b.append(" " + moduleLabel + "." + input.getName() + " = " + input.getDefaultInputValue() + ";\n"); + b.append(" " + moduleLabel + "." + input.getName() + " = " + input.getDefaultInputValue(moduleLabel) + ";\n"); } } diff --git a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/ArrayIndexes.java b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/ArrayIndexes.java index 1db1239b..869ff09e 100644 --- a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/ArrayIndexes.java +++ b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/ArrayIndexes.java @@ -4,8 +4,9 @@ import java.util.ArrayList; import org.simantics.objmap.annotations.GraphType; import org.simantics.objmap.annotations.RelatedOrderedSetElements; +import org.simantics.sysdyn.SysdynResource; -@GraphType("http://www.simantics.org/Sysdyn-1.1/ArrayIndexes") +@GraphType(SysdynResource.URIs.ArrayIndexes) public class ArrayIndexes { @RelatedOrderedSetElements diff --git a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Auxiliary.java b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Auxiliary.java index fa150c78..bf68a9d4 100644 --- a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Auxiliary.java +++ b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Auxiliary.java @@ -12,9 +12,10 @@ package org.simantics.sysdyn.representation; import org.simantics.objmap.annotations.GraphType; +import org.simantics.sysdyn.SysdynResource; import org.simantics.sysdyn.representation.visitors.IElementVisitorVoid; -@GraphType("http://www.simantics.org/Sysdyn-1.1/Auxiliary") +@GraphType(SysdynResource.URIs.Auxiliary) public class Auxiliary extends IndependentVariable { @Override public void accept(IElementVisitorVoid v) { diff --git a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Book.java b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Book.java index 8456e27c..c4621a7e 100644 --- a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Book.java +++ b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Book.java @@ -3,6 +3,7 @@ package org.simantics.sysdyn.representation; import java.util.ArrayList; import java.util.List; +import org.simantics.layer0.Layer0; import org.simantics.objmap.annotations.GraphType; import org.simantics.objmap.annotations.RelatedElements; import org.simantics.sysdyn.representation.visitors.IElementVisitorVoid; @@ -11,7 +12,7 @@ import org.simantics.sysdyn.representation.visitors.IElementVisitorVoid; public class Book extends Variable { @RelatedElements( - value = "http://www.simantics.org/Layer0-1.0/ConsistsOf", + value = Layer0.URIs.ConsistsOf, composition = true) private ArrayList sheets = new ArrayList(); diff --git a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Cloud.java b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Cloud.java index 56840b6c..1244dcf2 100644 --- a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Cloud.java +++ b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Cloud.java @@ -12,9 +12,10 @@ package org.simantics.sysdyn.representation; import org.simantics.objmap.annotations.GraphType; +import org.simantics.sysdyn.SysdynResource; import org.simantics.sysdyn.representation.visitors.IElementVisitorVoid; -@GraphType("http://www.simantics.org/Sysdyn-1.1/Cloud") +@GraphType(SysdynResource.URIs.Cloud) public class Cloud implements IElement { @Override public void accept(IElementVisitorVoid v) { diff --git a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Configuration.java b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Configuration.java index b2e8e8a5..02279551 100644 --- a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Configuration.java +++ b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Configuration.java @@ -13,29 +13,33 @@ package org.simantics.sysdyn.representation; import java.util.ArrayList; +import org.simantics.layer0.Layer0; import org.simantics.objmap.annotations.GraphType; import org.simantics.objmap.annotations.RelatedElement; import org.simantics.objmap.annotations.RelatedElements; import org.simantics.objmap.annotations.RelatedValue; +import org.simantics.simulation.ontology.SimulationResource; +import org.simantics.structural.stubs.StructuralResource2; +import org.simantics.sysdyn.SysdynResource; -@GraphType("http://www.simantics.org/Sysdyn-1.1/Configuration") +@GraphType(SysdynResource.URIs.Configuration) public class Configuration { - @RelatedValue("http://www.simantics.org/Layer0-1.0/HasName") + @RelatedValue(Layer0.URIs.HasName) private String name; - @RelatedValue("http://www.simantics.org/Layer0-1.0/HasLabel") + @RelatedValue(Layer0.URIs.HasLabel) private String label; - @RelatedElement("http://www.simantics.org/Structural-1.0/Defines") + @RelatedElement(StructuralResource2.URIs.Defines) private ModuleType moduleType; - - @RelatedElement("http://www.simantics.org/Simulation-1.0/IsConfigurationOf") + + @RelatedElement(SimulationResource.URIs.IsConfigurationOf) private Model model; @RelatedElements( - value = "http://www.simantics.org/Layer0-1.0/ConsistsOf", + value = Layer0.URIs.ConsistsOf, composition = true) private ArrayList elements = new ArrayList(); diff --git a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Dependency.java b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Dependency.java index 2b220fbf..a907c3f2 100644 --- a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Dependency.java +++ b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Dependency.java @@ -13,15 +13,16 @@ package org.simantics.sysdyn.representation; import org.simantics.objmap.annotations.GraphType; import org.simantics.objmap.annotations.RelatedElement; +import org.simantics.sysdyn.SysdynResource; import org.simantics.sysdyn.representation.visitors.IElementVisitorVoid; -@GraphType("http://www.simantics.org/Sysdyn-1.1/Dependency") +@GraphType(SysdynResource.URIs.Dependency) public class Dependency implements IElement { - @RelatedElement("http://www.simantics.org/Sysdyn-1.1/HasTail") + @RelatedElement(SysdynResource.URIs.HasTail) private IElement tail; - @RelatedElement("http://www.simantics.org/Sysdyn-1.1/HasHead") + @RelatedElement(SysdynResource.URIs.HasHead) private IElement head; - @RelatedElement("http://www.simantics.org/Sysdyn-1.1/RefersTo") + @RelatedElement(SysdynResource.URIs.Dependency_refersTo) private IElement refersTo; @Override diff --git a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/DiagramContainerDummy.java b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/DiagramContainerDummy.java index f30cc284..3ad14641 100644 --- a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/DiagramContainerDummy.java +++ b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/DiagramContainerDummy.java @@ -11,10 +11,11 @@ *******************************************************************************/ package org.simantics.sysdyn.representation; +import org.simantics.diagram.stubs.DiagramResource; import org.simantics.objmap.annotations.GraphType; import org.simantics.sysdyn.representation.visitors.IElementVisitorVoid; -@GraphType("http://www.simantics.org/Diagram-2.1/DiagramContainer") +@GraphType(DiagramResource.URIs.DiagramContainer) public class DiagramContainerDummy implements IElement { @Override diff --git a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Enumeration.java b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Enumeration.java index 741f3375..152d2988 100644 --- a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Enumeration.java +++ b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Enumeration.java @@ -17,19 +17,20 @@ import org.simantics.objmap.annotations.GraphType; import org.simantics.objmap.annotations.RelatedElement; import org.simantics.objmap.annotations.RelatedElements; import org.simantics.objmap.annotations.RelatedValue; +import org.simantics.sysdyn.SysdynResource; import org.simantics.sysdyn.representation.visitors.IElementVisitorVoid; -@GraphType("http://www.simantics.org/Sysdyn-1.1/Enumeration") +@GraphType(SysdynResource.URIs.Enumeration) public class Enumeration extends Variable { - @RelatedElement("http://www.simantics.org/Sysdyn-1.1/HasEnumerationIndexes") + @RelatedElement(SysdynResource.URIs.Enumeration_enumerationIndexes) private EnumerationIndexes enumerationIndexes; - @RelatedValue("http://www.simantics.org/Sysdyn-1.1/IsReplaceable") + @RelatedValue(SysdynResource.URIs.Enumeration_isReplaceable) private Boolean isReplaceable; @RelatedElements( - value = "http://www.simantics.org/Sysdyn-1.1/ReplacedEnumeration/Inverse", + value = SysdynResource.URIs.Redeclaration_replacedEnumeration_Inverse, composition = true) private ArrayList redeclarations = new ArrayList(); diff --git a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/EnumerationIndex.java b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/EnumerationIndex.java index 0d565c41..47ee9864 100644 --- a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/EnumerationIndex.java +++ b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/EnumerationIndex.java @@ -1,12 +1,14 @@ package org.simantics.sysdyn.representation; +import org.simantics.layer0.Layer0; import org.simantics.objmap.annotations.GraphType; import org.simantics.objmap.annotations.RelatedValue; +import org.simantics.sysdyn.SysdynResource; -@GraphType("http://www.simantics.org/Sysdyn-1.1/EnumerationIndex") +@GraphType(SysdynResource.URIs.EnumerationIndex) public class EnumerationIndex { - @RelatedValue("http://www.simantics.org/Layer0-1.0/HasName") + @RelatedValue(Layer0.URIs.HasName) protected String name; public String getName() { diff --git a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/EnumerationIndexes.java b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/EnumerationIndexes.java index 43e111f3..fa7eca93 100644 --- a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/EnumerationIndexes.java +++ b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/EnumerationIndexes.java @@ -4,8 +4,9 @@ import java.util.ArrayList; import org.simantics.objmap.annotations.GraphType; import org.simantics.objmap.annotations.RelatedOrderedSetElements; +import org.simantics.sysdyn.SysdynResource; -@GraphType("http://www.simantics.org/Sysdyn-1.1/EnumerationIndexes") +@GraphType(SysdynResource.URIs.EnumerationIndexes) public class EnumerationIndexes { @RelatedOrderedSetElements diff --git a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Flow.java b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Flow.java index 98996b11..786855b3 100644 --- a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Flow.java +++ b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Flow.java @@ -13,13 +13,14 @@ package org.simantics.sysdyn.representation; import org.simantics.objmap.annotations.GraphType; import org.simantics.objmap.annotations.RelatedElement; +import org.simantics.sysdyn.SysdynResource; import org.simantics.sysdyn.representation.visitors.IElementVisitorVoid; -@GraphType("http://www.simantics.org/Sysdyn-1.1/Flow") +@GraphType(SysdynResource.URIs.Flow) public class Flow implements IElement { - @RelatedElement("http://www.simantics.org/Sysdyn-1.1/HasTail") + @RelatedElement(SysdynResource.URIs.HasTail) private IElement tail; - @RelatedElement("http://www.simantics.org/Sysdyn-1.1/HasHead") + @RelatedElement(SysdynResource.URIs.HasHead) private IElement head; @Override diff --git a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Input.java b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Input.java index 5ad136a2..96f3a5c4 100644 --- a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Input.java +++ b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Input.java @@ -18,14 +18,15 @@ import java.util.List; import org.simantics.objmap.annotations.GraphType; import org.simantics.objmap.annotations.RelatedElements; import org.simantics.objmap.annotations.RelatedValue; +import org.simantics.sysdyn.SysdynResource; import org.simantics.sysdyn.representation.visitors.IElementVisitorVoid; -@GraphType("http://www.simantics.org/Sysdyn-1.1/Input") +@GraphType(SysdynResource.URIs.Input) public class Input extends Variable { - @RelatedValue("http://www.simantics.org/Sysdyn-1.1/HasDefaultInputValue") + @RelatedValue(SysdynResource.URIs.Input_defaultInputValue) private Double defaultInputValue; - @RelatedElements("http://www.simantics.org/Sysdyn-1.1/IsHeadOf") + @RelatedElements(SysdynResource.URIs.Variable_isHeadOf) private List isHeadOf; @@ -35,25 +36,29 @@ public class Input extends Variable { v.visit(this); } - public String getDefaultInputValue() { + public String getDefaultInputValue(String inModule) { if( getArrayIndexes() == null || getArrayIndexes().getEnumerations().isEmpty()) { - return defaultInputValue.toString(); + return defaultInputValue.toString(); } else { - StringBuilder sb = new StringBuilder(); - sb.append("fill("); - sb.append(defaultInputValue); - sb.append(", "); - Iterator i = getArrayIndexes().getEnumerations().iterator(); - while(i.hasNext()) { - Enumeration e = i.next(); - sb.append(e.getEnumerationIndexes().size()); - if(i.hasNext()) - sb.append(", "); - } - sb.append(")"); - return sb.toString(); + StringBuilder sb = new StringBuilder(); + sb.append("fill("); + sb.append(defaultInputValue); + sb.append(", "); + Iterator i = getArrayIndexes().getEnumerations().iterator(); + while(i.hasNext()) { + Enumeration e = i.next(); + sb.append((!inModule.isEmpty() && inModule != null ? inModule + "." : "") + e.getName() + ".size"); + if(i.hasNext()) + sb.append(", "); + } + sb.append(")"); + return sb.toString(); } } + + public String getDefaultInputValue() { + return getDefaultInputValue(null); + } public boolean isHeadOfDependency() { return !isHeadOf.isEmpty(); diff --git a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/LibraryDummy.java b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/LibraryDummy.java index 8762ade8..9e0c59b1 100644 --- a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/LibraryDummy.java +++ b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/LibraryDummy.java @@ -1,10 +1,11 @@ package org.simantics.sysdyn.representation; +import org.simantics.layer0.Layer0; import org.simantics.objmap.annotations.GraphType; import org.simantics.sysdyn.representation.visitors.IElementVisitorVoid; -@GraphType("http://www.simantics.org/Layer0-1.0/Library") +@GraphType(Layer0.URIs.Library) public class LibraryDummy implements IElement { @Override diff --git a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Model.java b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Model.java index 8be91f13..d2d5da2d 100644 --- a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Model.java +++ b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Model.java @@ -13,23 +13,24 @@ package org.simantics.sysdyn.representation; import org.simantics.objmap.annotations.GraphType; import org.simantics.objmap.annotations.RelatedValue; +import org.simantics.sysdyn.SysdynResource; -@GraphType("http://www.simantics.org/Sysdyn-1.1/SysdynModel") +@GraphType(SysdynResource.URIs.SysdynModel) public class Model { - @RelatedValue("http://www.simantics.org/Sysdyn-1.1/HasStartTime") + @RelatedValue(SysdynResource.URIs.SysdynModel_startTime) private Double startTime = 0.0; - @RelatedValue("http://www.simantics.org/Sysdyn-1.1/HasStopTime") + @RelatedValue(SysdynResource.URIs.SysdynModel_stopTime) private Double stopTime = 10.0; - @RelatedValue("http://www.simantics.org/Sysdyn-1.1/HasOutputInterval") + @RelatedValue(SysdynResource.URIs.SysdynModel_outputInterval) private Double outputInterval; - @RelatedValue("http://www.simantics.org/Sysdyn-1.1/HasTolerance") + @RelatedValue(SysdynResource.URIs.SysdynModel_tolerance) private Double tolerance; - @RelatedValue("http://www.simantics.org/Sysdyn-1.1/HasSolver") + @RelatedValue(SysdynResource.URIs.SysdynModel_solver) private String solver; public Double getStartTime() { diff --git a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Module.java b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Module.java index 4c7fb5ba..9a89df02 100644 --- a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Module.java +++ b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Module.java @@ -15,25 +15,27 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.List; +import org.simantics.layer0.Layer0; import org.simantics.objmap.annotations.GraphType; import org.simantics.objmap.annotations.RelatedElement; import org.simantics.objmap.annotations.RelatedElements; import org.simantics.objmap.annotations.RelatedValue; +import org.simantics.sysdyn.SysdynResource; import org.simantics.sysdyn.representation.visitors.IElementVisitorVoid; -@GraphType("http://www.simantics.org/Sysdyn-1.1/Module") +@GraphType(SysdynResource.URIs.Module) public class Module implements IElement { - @RelatedValue("http://www.simantics.org/Layer0-1.0/HasName") + @RelatedValue(Layer0.URIs.HasName) private String name; - @RelatedElement("http://www.simantics.org/Layer0-1.0/PartOf") + @RelatedElement(Layer0.URIs.PartOf) private Configuration parentConfiguration; - @RelatedElement("http://www.simantics.org/Layer0-1.0/InstanceOf") + @RelatedElement(Layer0.URIs.InstanceOf) private ModuleType type; - @RelatedElements("http://www.simantics.org/Sysdyn-1.1/HasRedeclaration") + @RelatedElements(SysdynResource.URIs.Module_redeclaration) private List redeclarations; @Override diff --git a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/ModuleType.java b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/ModuleType.java index 826937b9..148018c7 100644 --- a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/ModuleType.java +++ b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/ModuleType.java @@ -11,18 +11,20 @@ *******************************************************************************/ package org.simantics.sysdyn.representation; +import org.simantics.layer0.Layer0; import org.simantics.objmap.annotations.GraphType; import org.simantics.objmap.annotations.RelatedElement; import org.simantics.objmap.annotations.RelatedValue; +import org.simantics.structural.stubs.StructuralResource2; import org.simantics.sysdyn.representation.visitors.IElementVisitorVoid; -@GraphType("http://www.simantics.org/Structural-1.0/ComponentType") +@GraphType(StructuralResource2.URIs.ComponentType) public class ModuleType implements IElement { - @RelatedValue("http://www.simantics.org/Layer0-1.0/HasName") + @RelatedValue(Layer0.URIs.HasName) private String name; - @RelatedElement("http://www.simantics.org/Structural-1.0/IsDefinedBy") + @RelatedElement(StructuralResource2.URIs.IsDefinedBy) private Configuration configuration; public String getName() { diff --git a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Redeclaration.java b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Redeclaration.java index 417fbbab..40d5ade7 100644 --- a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Redeclaration.java +++ b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Redeclaration.java @@ -13,14 +13,15 @@ package org.simantics.sysdyn.representation; import org.simantics.objmap.annotations.GraphType; import org.simantics.objmap.annotations.RelatedElement; +import org.simantics.sysdyn.SysdynResource; -@GraphType("http://www.simantics.org/Sysdyn-1.1/Redeclaration") +@GraphType(SysdynResource.URIs.Redeclaration) public class Redeclaration { - @RelatedElement("http://www.simantics.org/Sysdyn-1.1/ReplacedEnumeration") + @RelatedElement(SysdynResource.URIs.Redeclaration_replacedEnumeration) private Enumeration replacedEnumeration; - @RelatedElement("http://www.simantics.org/Sysdyn-1.1/ReplacingEnumeration") + @RelatedElement(SysdynResource.URIs.Redeclaration_replacingEnumeration) private Enumeration replacingEnumeration; public String getRedeclaration() { diff --git a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Sheet.java b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Sheet.java index 00fcf7cc..e88081eb 100644 --- a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Sheet.java +++ b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Sheet.java @@ -27,7 +27,7 @@ import org.simantics.sysdyn.representation.visitors.IElementVisitorVoid; @GraphType("http://www.simantics.org/Spreadsheet-1.1/Spreadsheet") public class Sheet extends org.simantics.sysdyn.representation.Variable { - @RelatedElement("http://www.simantics.org/Layer0-1.0/PartOf") + @RelatedElement(Layer0.URIs.PartOf) protected Book book; HashMap cells = new HashMap(); diff --git a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Stock.java b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Stock.java index 8aee598a..ec92d298 100644 --- a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Stock.java +++ b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Stock.java @@ -15,19 +15,20 @@ import java.util.ArrayList; import org.simantics.objmap.annotations.GraphType; import org.simantics.objmap.annotations.RelatedElements; +import org.simantics.sysdyn.SysdynResource; import org.simantics.sysdyn.representation.visitors.IElementVisitorVoid; -@GraphType("http://www.simantics.org/Sysdyn-1.1/Stock") +@GraphType(SysdynResource.URIs.Stock) public class Stock extends IndependentVariable { @RelatedElements( - value = "http://www.simantics.org/Sysdyn-1.1/IsHeadOf", + value = SysdynResource.URIs.Variable_isHeadOf, composition = true) private ArrayList incomingConnections = new ArrayList(); @RelatedElements( - value = "http://www.simantics.org/Sysdyn-1.1/IsTailOf", + value = SysdynResource.URIs.Variable_isTailOf, composition = true) private ArrayList outgoingConnections = new ArrayList(); diff --git a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Valve.java b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Valve.java index 0ae3c3b0..aa3d012b 100644 --- a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Valve.java +++ b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Valve.java @@ -12,9 +12,10 @@ package org.simantics.sysdyn.representation; import org.simantics.objmap.annotations.GraphType; +import org.simantics.sysdyn.SysdynResource; import org.simantics.sysdyn.representation.visitors.IElementVisitorVoid; -@GraphType("http://www.simantics.org/Sysdyn-1.1/Valve") +@GraphType(SysdynResource.URIs.Valve) public class Valve extends IndependentVariable { @Override public void accept(IElementVisitorVoid v) { diff --git a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Variable.java b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Variable.java index 69c03432..f8d5a943 100644 --- a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Variable.java +++ b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Variable.java @@ -11,25 +11,27 @@ *******************************************************************************/ package org.simantics.sysdyn.representation; +import org.simantics.layer0.Layer0; import org.simantics.objmap.annotations.RelatedElement; import org.simantics.objmap.annotations.RelatedValue; +import org.simantics.sysdyn.SysdynResource; import org.simantics.sysdyn.representation.expressions.Expressions; public abstract class Variable implements IElement { - @RelatedValue("http://www.simantics.org/Sysdyn-1.1/Variable/Type") + @RelatedValue(SysdynResource.URIs.Variable_type) protected String type; - @RelatedValue("http://www.simantics.org/Layer0-1.0/HasName") + @RelatedValue(Layer0.URIs.HasName) protected String name; - @RelatedElement("http://www.simantics.org/Layer0-1.0/PartOf") + @RelatedElement(Layer0.URIs.PartOf) protected Object parent; - @RelatedElement("http://www.simantics.org/Sysdyn-1.1/HasArrayIndexes") + @RelatedElement(SysdynResource.URIs.Variable_arrayIndexes) protected ArrayIndexes arrayIndexes; - @RelatedElement("http://www.simantics.org/Sysdyn-1.1/HasExpressions") + @RelatedElement(SysdynResource.URIs.Variable_expressions) protected Expressions expressions; diff --git a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/expressions/ConstantExpression.java b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/expressions/ConstantExpression.java index c4a3d1e6..c134bd6c 100644 --- a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/expressions/ConstantExpression.java +++ b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/expressions/ConstantExpression.java @@ -13,12 +13,13 @@ package org.simantics.sysdyn.representation.expressions; import org.simantics.objmap.annotations.GraphType; import org.simantics.objmap.annotations.RelatedValue; +import org.simantics.sysdyn.SysdynResource; import org.simantics.sysdyn.representation.IndependentVariable; -@GraphType("http://www.simantics.org/Sysdyn-1.1/ConstantExpression") +@GraphType(SysdynResource.URIs.ConstantExpression) public class ConstantExpression extends Expression { - @RelatedValue("http://www.simantics.org/Sysdyn-1.1/HasEquation") + @RelatedValue(SysdynResource.URIs.Expression_equation) private String equation; @Override diff --git a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/expressions/DelayExpression.java b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/expressions/DelayExpression.java index 852ea14c..b8c969b2 100644 --- a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/expressions/DelayExpression.java +++ b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/expressions/DelayExpression.java @@ -16,6 +16,7 @@ import java.util.Iterator; import org.simantics.objmap.annotations.GraphType; import org.simantics.objmap.annotations.RelatedValue; +import org.simantics.sysdyn.SysdynResource; import org.simantics.sysdyn.representation.ArrayIndexes; import org.simantics.sysdyn.representation.Enumeration; import org.simantics.sysdyn.representation.IndependentVariable; @@ -48,19 +49,19 @@ import org.simantics.sysdyn.representation.utils.IndexUtils; * @author Teemu Lempinen * */ -@GraphType("http://www.simantics.org/Sysdyn-1.1/DelayExpression") +@GraphType(SysdynResource.URIs.DelayExpression) public class DelayExpression extends Expression { - @RelatedValue("http://www.simantics.org/Sysdyn-1.1/DelayExpression/initialValue") + @RelatedValue(SysdynResource.URIs.DelayExpression_initialValue) private String initialValue; - @RelatedValue("http://www.simantics.org/Sysdyn-1.1/DelayExpression/delayTime") + @RelatedValue(SysdynResource.URIs.DelayExpression_delayTime) private String delayTime; - @RelatedValue("http://www.simantics.org/Sysdyn-1.1/DelayExpression/order") + @RelatedValue(SysdynResource.URIs.DelayExpression_order) private Integer order; - @RelatedValue("http://www.simantics.org/Sysdyn-1.1/DelayExpression/expression") + @RelatedValue(SysdynResource.URIs.DelayExpression_expression) private String equation; @Override diff --git a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/expressions/Expression.java b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/expressions/Expression.java index ea8eb302..e500115f 100644 --- a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/expressions/Expression.java +++ b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/expressions/Expression.java @@ -12,11 +12,12 @@ package org.simantics.sysdyn.representation.expressions; import org.simantics.objmap.annotations.RelatedValue; +import org.simantics.sysdyn.SysdynResource; import org.simantics.sysdyn.representation.IndependentVariable; public abstract class Expression implements IExpression { - @RelatedValue("http://www.simantics.org/Sysdyn-1.1/HasArrayRange") + @RelatedValue(SysdynResource.URIs.Expression_arrayRange) private String range; @Override diff --git a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/expressions/Expressions.java b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/expressions/Expressions.java index 394ce422..d05b9873 100644 --- a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/expressions/Expressions.java +++ b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/expressions/Expressions.java @@ -4,8 +4,9 @@ import java.util.ArrayList; import org.simantics.objmap.annotations.GraphType; import org.simantics.objmap.annotations.RelatedOrderedSetElements; +import org.simantics.sysdyn.SysdynResource; -@GraphType("http://www.simantics.org/Sysdyn-1.1/Expressions") +@GraphType(SysdynResource.URIs.Expressions) public class Expressions { @RelatedOrderedSetElements diff --git a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/expressions/LookupExpression.java b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/expressions/LookupExpression.java index e6ef859c..5d5b4d89 100644 --- a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/expressions/LookupExpression.java +++ b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/expressions/LookupExpression.java @@ -12,8 +12,9 @@ package org.simantics.sysdyn.representation.expressions; import org.simantics.objmap.annotations.GraphType; +import org.simantics.sysdyn.SysdynResource; -@GraphType("http://www.simantics.org/Sysdyn-1.1/LookupExpression") +@GraphType(SysdynResource.URIs.LookupExpression) public class LookupExpression extends Expression { } diff --git a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/expressions/NormalExpression.java b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/expressions/NormalExpression.java index 6495c4d6..360ad577 100644 --- a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/expressions/NormalExpression.java +++ b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/expressions/NormalExpression.java @@ -16,16 +16,17 @@ import java.util.Iterator; import org.simantics.objmap.annotations.GraphType; import org.simantics.objmap.annotations.RelatedValue; +import org.simantics.sysdyn.SysdynResource; import org.simantics.sysdyn.representation.ArrayIndexes; import org.simantics.sysdyn.representation.Enumeration; import org.simantics.sysdyn.representation.IndependentVariable; import org.simantics.sysdyn.representation.utils.FormatUtils; import org.simantics.sysdyn.representation.utils.IndexUtils; -@GraphType("http://www.simantics.org/Sysdyn-1.1/NormalExpression") +@GraphType(SysdynResource.URIs.NormalExpression) public class NormalExpression extends Expression { - @RelatedValue("http://www.simantics.org/Sysdyn-1.1/HasEquation") + @RelatedValue(SysdynResource.URIs.Expression_equation) private String equation; @Override diff --git a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/expressions/ParameterExpression.java b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/expressions/ParameterExpression.java index 14819372..90ca0c5b 100644 --- a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/expressions/ParameterExpression.java +++ b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/expressions/ParameterExpression.java @@ -16,15 +16,16 @@ import java.util.Iterator; import org.simantics.objmap.annotations.GraphType; import org.simantics.objmap.annotations.RelatedValue; +import org.simantics.sysdyn.SysdynResource; import org.simantics.sysdyn.representation.ArrayIndexes; import org.simantics.sysdyn.representation.Enumeration; import org.simantics.sysdyn.representation.IndependentVariable; import org.simantics.sysdyn.representation.utils.IndexUtils; -@GraphType("http://www.simantics.org/Sysdyn-1.1/ParameterExpression") +@GraphType(SysdynResource.URIs.ParameterExpression) public class ParameterExpression extends Expression { - @RelatedValue("http://www.simantics.org/Sysdyn-1.1/HasEquation") + @RelatedValue(SysdynResource.URIs.Expression_equation) private String equation; @Override diff --git a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/expressions/StockExpression.java b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/expressions/StockExpression.java index 32608c3b..6c30e6ba 100644 --- a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/expressions/StockExpression.java +++ b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/expressions/StockExpression.java @@ -18,6 +18,7 @@ import java.util.Set; import org.simantics.objmap.annotations.GraphType; import org.simantics.objmap.annotations.RelatedValue; +import org.simantics.sysdyn.SysdynResource; import org.simantics.sysdyn.expressionParser.ExpressionParser; import org.simantics.sysdyn.expressionParser.ParseException; import org.simantics.sysdyn.representation.ArrayIndexes; @@ -37,10 +38,10 @@ import org.simantics.sysdyn.representation.utils.IndexUtils; * @author Teemu Lempinen * */ -@GraphType("http://www.simantics.org/Sysdyn-1.1/StockExpression") +@GraphType(SysdynResource.URIs.StockExpression) public class StockExpression extends Expression { - @RelatedValue("http://www.simantics.org/Sysdyn-1.1/HasInitialEquation") + @RelatedValue(SysdynResource.URIs.StockExpression_initialEquation) private String initialEquation; @Override diff --git a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/expressions/WithLookupExpression.java b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/expressions/WithLookupExpression.java index 4800c91b..ed99a236 100644 --- a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/expressions/WithLookupExpression.java +++ b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/expressions/WithLookupExpression.java @@ -16,6 +16,7 @@ import java.util.Iterator; import org.simantics.objmap.annotations.GraphType; import org.simantics.objmap.annotations.RelatedValue; +import org.simantics.sysdyn.SysdynResource; import org.simantics.sysdyn.representation.ArrayIndexes; import org.simantics.sysdyn.representation.Enumeration; import org.simantics.sysdyn.representation.IndependentVariable; @@ -23,12 +24,12 @@ import org.simantics.sysdyn.representation.utils.FormatUtils; import org.simantics.sysdyn.representation.utils.IndexUtils; -@GraphType("http://www.simantics.org/Sysdyn-1.1/WithLookupExpression") +@GraphType(SysdynResource.URIs.WithLookupExpression) public class WithLookupExpression extends Expression { - @RelatedValue("http://www.simantics.org/Sysdyn-1.1/WithLookupExpression/lookup") + @RelatedValue(SysdynResource.URIs.WithLookupExpression_lookup) private String lookupTable; - @RelatedValue("http://www.simantics.org/Sysdyn-1.1/WithLookupExpression/expression") + @RelatedValue(SysdynResource.URIs.WithLookupExpression_expression) private String equation; @Override -- 2.47.1