/******************************************************************************* * Copyright (c) 2007, 2010 Association for Decentralized Information Management * in Industry THTH ry. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * VTT Technical Research Centre of Finland - initial API and implementation *******************************************************************************/ package org.simantics.equation.stubs; import org.simantics.db.Resource; import org.simantics.db.ReadGraph; import org.simantics.db.request.Read; import org.simantics.db.Session; import org.simantics.db.exception.DatabaseException; public class EquationResource { public final Resource Addition; public final Resource AggregateExpression; public final Resource Assign; public final Resource Division; public final Resource DoubleAssign; public final Resource DoubleToIntegerAssign; public final Resource Element; public final Resource ElementExpression; public final Resource Equation; public final Resource Expression; public final Resource HasA; public final Resource HasB; public final Resource HasC; public final Resource HasCoefficient; public final Resource HasElementList; public final Resource HasSource; public final Resource HasTarget; public final Resource HasVariable; public final Resource IntegerAssign; public final Resource Multiplication; public final Resource Number; public final Resource Operator; public final Resource ProductExpression; public final Resource ScalarPolynomial; public final Resource SecondOrderScalarPolynomial; public final Resource Subtraction; public final Resource SumExpression; public final Resource SystemOfEquations; public final Resource SystemOfExpressions; public static class URIs { public static final String Addition = "http://www.simantics.org/Equation-1.0/Types/Addition"; public static final String AggregateExpression = "http://www.simantics.org/Equation-1.0/Types/AggregateExpression"; public static final String Assign = "http://www.simantics.org/Equation-1.0/Types/Assign"; public static final String Division = "http://www.simantics.org/Equation-1.0/Types/Division"; public static final String DoubleAssign = "http://www.simantics.org/Equation-1.0/Types/DoubleAssign"; public static final String DoubleToIntegerAssign = "http://www.simantics.org/Equation-1.0/Types/DoubleToIntegerAssign"; public static final String Element = "http://www.simantics.org/Equation-1.0/Types/Element"; public static final String ElementExpression = "http://www.simantics.org/Equation-1.0/Types/ElementExpression"; public static final String Equation = "http://www.simantics.org/Equation-1.0/Types/Equation"; public static final String Expression = "http://www.simantics.org/Equation-1.0/Types/Expression"; public static final String HasA = "http://www.simantics.org/Equation-1.0/Relations/HasA"; public static final String HasB = "http://www.simantics.org/Equation-1.0/Relations/HasB"; public static final String HasC = "http://www.simantics.org/Equation-1.0/Relations/HasC"; public static final String HasCoefficient = "http://www.simantics.org/Equation-1.0/Relations/HasCoefficient"; public static final String HasElementList = "http://www.simantics.org/Equation-1.0/Relations/HasElementList"; public static final String HasSource = "http://www.simantics.org/Equation-1.0/Relations/HasSource"; public static final String HasTarget = "http://www.simantics.org/Equation-1.0/Relations/HasTarget"; public static final String HasVariable = "http://www.simantics.org/Equation-1.0/Relations/HasVariable"; public static final String IntegerAssign = "http://www.simantics.org/Equation-1.0/Types/IntegerAssign"; public static final String Multiplication = "http://www.simantics.org/Equation-1.0/Types/Multiplication"; public static final String Number = "http://www.simantics.org/Equation-1.0/Types/Number"; public static final String Operator = "http://www.simantics.org/Equation-1.0/Types/Operator"; public static final String ProductExpression = "http://www.simantics.org/Equation-1.0/Types/ProductExpression"; public static final String ScalarPolynomial = "http://www.simantics.org/Equation-1.0/Types/ScalarPolynomial"; public static final String SecondOrderScalarPolynomial = "http://www.simantics.org/Equation-1.0/Types/SecondOrderScalarPolynomial"; public static final String Subtraction = "http://www.simantics.org/Equation-1.0/Types/Subtraction"; public static final String SumExpression = "http://www.simantics.org/Equation-1.0/Types/SumExpression"; public static final String SystemOfEquations = "http://www.simantics.org/Equation-1.0/Types/SystemOfEquations"; public static final String SystemOfExpressions = "http://www.simantics.org/Equation-1.0/Types/SystemOfExpressions"; } public static Resource getResourceOrNull(ReadGraph graph, String uri) { try { return graph.getResource(uri); } catch(DatabaseException e) { System.err.println(e.getMessage()); return null; } } public EquationResource(ReadGraph graph) { Addition = getResourceOrNull(graph, URIs.Addition); AggregateExpression = getResourceOrNull(graph, URIs.AggregateExpression); Assign = getResourceOrNull(graph, URIs.Assign); Division = getResourceOrNull(graph, URIs.Division); DoubleAssign = getResourceOrNull(graph, URIs.DoubleAssign); DoubleToIntegerAssign = getResourceOrNull(graph, URIs.DoubleToIntegerAssign); Element = getResourceOrNull(graph, URIs.Element); ElementExpression = getResourceOrNull(graph, URIs.ElementExpression); Equation = getResourceOrNull(graph, URIs.Equation); Expression = getResourceOrNull(graph, URIs.Expression); HasA = getResourceOrNull(graph, URIs.HasA); HasB = getResourceOrNull(graph, URIs.HasB); HasC = getResourceOrNull(graph, URIs.HasC); HasCoefficient = getResourceOrNull(graph, URIs.HasCoefficient); HasElementList = getResourceOrNull(graph, URIs.HasElementList); HasSource = getResourceOrNull(graph, URIs.HasSource); HasTarget = getResourceOrNull(graph, URIs.HasTarget); HasVariable = getResourceOrNull(graph, URIs.HasVariable); IntegerAssign = getResourceOrNull(graph, URIs.IntegerAssign); Multiplication = getResourceOrNull(graph, URIs.Multiplication); Number = getResourceOrNull(graph, URIs.Number); Operator = getResourceOrNull(graph, URIs.Operator); ProductExpression = getResourceOrNull(graph, URIs.ProductExpression); ScalarPolynomial = getResourceOrNull(graph, URIs.ScalarPolynomial); SecondOrderScalarPolynomial = getResourceOrNull(graph, URIs.SecondOrderScalarPolynomial); Subtraction = getResourceOrNull(graph, URIs.Subtraction); SumExpression = getResourceOrNull(graph, URIs.SumExpression); SystemOfEquations = getResourceOrNull(graph, URIs.SystemOfEquations); SystemOfExpressions = getResourceOrNull(graph, URIs.SystemOfExpressions); } public static EquationResource getInstance(ReadGraph graph) { Session session = graph.getSession(); EquationResource ret = session.peekService(EquationResource.class); if(ret == null) { ret = new EquationResource(graph); session.registerService(EquationResource.class, ret); } return ret; } public static EquationResource getInstance(Session session) throws DatabaseException { EquationResource ret = session.peekService(EquationResource.class); if(ret == null) { ret = session.syncRequest(new Read() { public EquationResource perform(ReadGraph graph) throws DatabaseException { return new EquationResource(graph); } }); session.registerService(EquationResource.class, ret); } return ret; } }