--- /dev/null
+/*******************************************************************************\r
+ * Copyright (c) 2007- VTT Technical Research Centre of Finland.\r
+ * All rights reserved. This program and the accompanying materials\r
+ * are made available under the terms of the Eclipse Public License v1.0\r
+ * which accompanies this distribution, and is available at\r
+ * http://www.eclipse.org/legal/epl-v10.html\r
+ *\r
+ * Contributors:\r
+ * VTT Technical Research Centre of Finland - initial API and implementation\r
+ *******************************************************************************/\r
+package org.simantics.mapping;\r
+\r
+\r
+import org.simantics.db.Resource;\r
+import org.simantics.db.ReadGraph;\r
+import org.simantics.db.request.Read;\r
+import org.simantics.db.Session;\r
+import org.simantics.db.exception.DatabaseException;\r
+\r
+public class MappingResource {\r
+ \r
+ public final Resource BinaryPredicateConstraint;\r
+ public final Resource ClaimRule;\r
+ public final Resource CompositeRule;\r
+ public final Resource Constraint;\r
+ public final Resource ConstraintConjunction;\r
+ public final Resource ConstraintDisjunction;\r
+ public final Resource ConstraintGroup;\r
+ public final Resource DenyRule;\r
+ public final Resource Domain;\r
+ public final Resource ExistsConstraint;\r
+ public final Resource HasBinaryPredicate;\r
+ public final Resource HasChildRule;\r
+ public final Resource HasCondition;\r
+ public final Resource HasConstraint;\r
+ public final Resource HasDomain;\r
+ public final Resource HasElseRule;\r
+ public final Resource HasMappingDescription;\r
+ public final Resource HasParameter;\r
+ public final Resource HasParameterRelation;\r
+ public final Resource HasPredicate;\r
+ public final Resource HasPredicateSuperrelation;\r
+ public final Resource HasPrimaryConstraintGroup;\r
+ public final Resource HasResource;\r
+ public final Resource HasRule;\r
+ public final Resource HasSubject;\r
+ public final Resource HasThenRule;\r
+ public final Resource HasUnaryPredicate;\r
+ public final Resource IfRule;\r
+ public final Resource Mapping;\r
+ public final Resource MappingDescription;\r
+ public final Resource MappingDomain;\r
+ public final Resource MappingParameter;\r
+ public final Resource MappingRule;\r
+ public final Resource ResourceVariable;\r
+ public final Resource Rule;\r
+ public final Resource SourceDomain;\r
+ public final Resource StaticDomain;\r
+ public final Resource TargetDomain;\r
+ public final Resource TripletConstraint;\r
+ public final Resource UnaryPredicateConstraint;\r
+ public final Resource UnlessRule;\r
+ \r
+ public static class URIs {\r
+ public static final String BinaryPredicateConstraint = "http://Projects/TypeSystemProject/MappingOntology/Constraints/BinaryPredicateConstraint";\r
+ public static final String ClaimRule = "http://Projects/TypeSystemProject/MappingOntology/Rules/ClaimRule";\r
+ public static final String CompositeRule = "http://Projects/TypeSystemProject/MappingOntology/Rules/CompositeRule";\r
+ public static final String Constraint = "http://Projects/TypeSystemProject/MappingOntology/Constraints/Constraint";\r
+ public static final String ConstraintConjunction = "http://Projects/TypeSystemProject/MappingOntology/Constraints/ConstraintConjunction";\r
+ public static final String ConstraintDisjunction = "http://Projects/TypeSystemProject/MappingOntology/Constraints/ConstraintDisjunction";\r
+ public static final String ConstraintGroup = "http://Projects/TypeSystemProject/MappingOntology/Mappings/ConstraintGroup";\r
+ public static final String DenyRule = "http://Projects/TypeSystemProject/MappingOntology/Rules/DenyRule";\r
+ public static final String Domain = "http://Projects/TypeSystemProject/MappingOntology/Mappings/Domain";\r
+ public static final String ExistsConstraint = "http://Projects/TypeSystemProject/MappingOntology/Constraints/ExistsConstraint";\r
+ public static final String HasBinaryPredicate = "http://Projects/TypeSystemProject/MappingOntology/Constraints/HasBinaryPredicate";\r
+ public static final String HasChildRule = "http://Projects/TypeSystemProject/MappingOntology/Mappings/HasChildRule";\r
+ public static final String HasCondition = "http://Projects/TypeSystemProject/MappingOntology/Rules/HasCondition";\r
+ public static final String HasConstraint = "http://Projects/TypeSystemProject/MappingOntology/Constraints/HasConstraint";\r
+ public static final String HasDomain = "http://Projects/TypeSystemProject/MappingOntology/Mappings/HasDomain";\r
+ public static final String HasElseRule = "http://Projects/TypeSystemProject/MappingOntology/Rules/HasElseRule";\r
+ public static final String HasMappingDescription = "http://Projects/TypeSystemProject/MappingOntology/Mappings/HasMappingDescription";\r
+ public static final String HasParameter = "http://Projects/TypeSystemProject/MappingOntology/Mappings/HasParameter";\r
+ public static final String HasParameterRelation = "http://Projects/TypeSystemProject/MappingOntology/Mappings/HasParameterRelation";\r
+ public static final String HasPredicate = "http://Projects/TypeSystemProject/MappingOntology/Constraints/HasPredicate";\r
+ public static final String HasPredicateSuperrelation = "http://Projects/TypeSystemProject/MappingOntology/Constraints/HasPredicateSuperrelation";\r
+ public static final String HasPrimaryConstraintGroup = "http://Projects/TypeSystemProject/MappingOntology/Mappings/HasPrimaryConstraintGroup";\r
+ public static final String HasResource = "http://Projects/TypeSystemProject/MappingOntology/Constraints/HasResource";\r
+ public static final String HasRule = "http://Projects/TypeSystemProject/MappingOntology/Mappings/HasRule";\r
+ public static final String HasSubject = "http://Projects/TypeSystemProject/MappingOntology/Constraints/HasSubject";\r
+ public static final String HasThenRule = "http://Projects/TypeSystemProject/MappingOntology/Rules/HasThenRule";\r
+ public static final String HasUnaryPredicate = "http://Projects/TypeSystemProject/MappingOntology/Constraints/HasUnaryPredicate";\r
+ public static final String IfRule = "http://Projects/TypeSystemProject/MappingOntology/Rules/IfRule";\r
+ public static final String Mapping = "http://Projects/TypeSystemProject/MappingOntology/Mappings/Mapping";\r
+ public static final String MappingDescription = "http://Projects/TypeSystemProject/MappingOntology/Mappings/MappingDescription";\r
+ public static final String MappingDomain = "http://Projects/TypeSystemProject/MappingOntology/Mappings/MappingDomain";\r
+ public static final String MappingParameter = "http://Projects/TypeSystemProject/MappingOntology/Mappings/MappingParameter";\r
+ public static final String MappingRule = "http://Projects/TypeSystemProject/MappingOntology/Mappings/MappingRule";\r
+ public static final String ResourceVariable = "http://Projects/TypeSystemProject/MappingOntology/Constraints/ResourceVariable";\r
+ public static final String Rule = "http://Projects/TypeSystemProject/MappingOntology/Rules/Rule";\r
+ public static final String SourceDomain = "http://Projects/TypeSystemProject/MappingOntology/Mappings/SourceDomain";\r
+ public static final String StaticDomain = "http://Projects/TypeSystemProject/MappingOntology/Mappings/StaticDomain";\r
+ public static final String TargetDomain = "http://Projects/TypeSystemProject/MappingOntology/Mappings/TargetDomain";\r
+ public static final String TripletConstraint = "http://Projects/TypeSystemProject/MappingOntology/Constraints/TripletConstraint";\r
+ public static final String UnaryPredicateConstraint = "http://Projects/TypeSystemProject/MappingOntology/Constraints/UnaryPredicateConstraint";\r
+ public static final String UnlessRule = "http://Projects/TypeSystemProject/MappingOntology/Rules/UnlessRule";\r
+ }\r
+ \r
+ public static Resource getResourceOrNull(ReadGraph graph, String uri) {\r
+ try {\r
+ return graph.getResource(uri);\r
+ } catch(DatabaseException e) {\r
+ System.err.println(e.getMessage());\r
+ return null;\r
+ }\r
+ }\r
+ \r
+ public MappingResource(ReadGraph graph) {\r
+ BinaryPredicateConstraint = getResourceOrNull(graph, URIs.BinaryPredicateConstraint);\r
+ ClaimRule = getResourceOrNull(graph, URIs.ClaimRule);\r
+ CompositeRule = getResourceOrNull(graph, URIs.CompositeRule);\r
+ Constraint = getResourceOrNull(graph, URIs.Constraint);\r
+ ConstraintConjunction = getResourceOrNull(graph, URIs.ConstraintConjunction);\r
+ ConstraintDisjunction = getResourceOrNull(graph, URIs.ConstraintDisjunction);\r
+ ConstraintGroup = getResourceOrNull(graph, URIs.ConstraintGroup);\r
+ DenyRule = getResourceOrNull(graph, URIs.DenyRule);\r
+ Domain = getResourceOrNull(graph, URIs.Domain);\r
+ ExistsConstraint = getResourceOrNull(graph, URIs.ExistsConstraint);\r
+ HasBinaryPredicate = getResourceOrNull(graph, URIs.HasBinaryPredicate);\r
+ HasChildRule = getResourceOrNull(graph, URIs.HasChildRule);\r
+ HasCondition = getResourceOrNull(graph, URIs.HasCondition);\r
+ HasConstraint = getResourceOrNull(graph, URIs.HasConstraint);\r
+ HasDomain = getResourceOrNull(graph, URIs.HasDomain);\r
+ HasElseRule = getResourceOrNull(graph, URIs.HasElseRule);\r
+ HasMappingDescription = getResourceOrNull(graph, URIs.HasMappingDescription);\r
+ HasParameter = getResourceOrNull(graph, URIs.HasParameter);\r
+ HasParameterRelation = getResourceOrNull(graph, URIs.HasParameterRelation);\r
+ HasPredicate = getResourceOrNull(graph, URIs.HasPredicate);\r
+ HasPredicateSuperrelation = getResourceOrNull(graph, URIs.HasPredicateSuperrelation);\r
+ HasPrimaryConstraintGroup = getResourceOrNull(graph, URIs.HasPrimaryConstraintGroup);\r
+ HasResource = getResourceOrNull(graph, URIs.HasResource);\r
+ HasRule = getResourceOrNull(graph, URIs.HasRule);\r
+ HasSubject = getResourceOrNull(graph, URIs.HasSubject);\r
+ HasThenRule = getResourceOrNull(graph, URIs.HasThenRule);\r
+ HasUnaryPredicate = getResourceOrNull(graph, URIs.HasUnaryPredicate);\r
+ IfRule = getResourceOrNull(graph, URIs.IfRule);\r
+ Mapping = getResourceOrNull(graph, URIs.Mapping);\r
+ MappingDescription = getResourceOrNull(graph, URIs.MappingDescription);\r
+ MappingDomain = getResourceOrNull(graph, URIs.MappingDomain);\r
+ MappingParameter = getResourceOrNull(graph, URIs.MappingParameter);\r
+ MappingRule = getResourceOrNull(graph, URIs.MappingRule);\r
+ ResourceVariable = getResourceOrNull(graph, URIs.ResourceVariable);\r
+ Rule = getResourceOrNull(graph, URIs.Rule);\r
+ SourceDomain = getResourceOrNull(graph, URIs.SourceDomain);\r
+ StaticDomain = getResourceOrNull(graph, URIs.StaticDomain);\r
+ TargetDomain = getResourceOrNull(graph, URIs.TargetDomain);\r
+ TripletConstraint = getResourceOrNull(graph, URIs.TripletConstraint);\r
+ UnaryPredicateConstraint = getResourceOrNull(graph, URIs.UnaryPredicateConstraint);\r
+ UnlessRule = getResourceOrNull(graph, URIs.UnlessRule);\r
+ }\r
+ \r
+ public static MappingResource getInstance(ReadGraph graph) {\r
+ Session session = graph.getSession();\r
+ MappingResource ret = session.getService(MappingResource.class);\r
+ if(ret == null) {\r
+ ret = new MappingResource(graph);\r
+ session.registerService(MappingResource.class, ret);\r
+ }\r
+ return ret;\r
+ }\r
+ \r
+ public static MappingResource getInstance(Session session) throws DatabaseException {\r
+ MappingResource ret = session.getService(MappingResource.class);\r
+ if(ret == null) {\r
+ ret = session.syncRequest(new Read<MappingResource>() {\r
+ public MappingResource perform(ReadGraph graph) throws DatabaseException {\r
+ return new MappingResource(graph);\r
+ }\r
+ });\r
+ session.registerService(MappingResource.class, ret);\r
+ }\r
+ return ret;\r
+ }\r
+ \r
+}\r
+\r