X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.db.layer0%2Fsrc%2Forg%2Fsimantics%2Fdb%2Flayer0%2Fgenericrelation%2Fcombinators%2FSelectByRelation.java;h=62e2e96d20f0ecb984c6d0b5867716f8e3e8f5ad;hb=44342cceec520f2e869ff43757ebb1d079f47030;hp=344b9c8aca4e5c042f083e4b6a0294596f34ce42;hpb=969bd23cab98a79ca9101af33334000879fb60c5;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/genericrelation/combinators/SelectByRelation.java b/bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/genericrelation/combinators/SelectByRelation.java index 344b9c8ac..62e2e96d2 100644 --- a/bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/genericrelation/combinators/SelectByRelation.java +++ b/bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/genericrelation/combinators/SelectByRelation.java @@ -1,80 +1,80 @@ -/******************************************************************************* - * 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.db.layer0.genericrelation.combinators; - -import gnu.trove.list.array.TIntArrayList; - -import java.util.ArrayList; -import java.util.List; - -import org.simantics.db.ReadGraph; -import org.simantics.db.exception.DatabaseException; -import org.simantics.db.layer0.adapter.GenericRelation; -import org.simantics.db.layer0.genericrelation.AbstractRelation; -import org.simantics.utils.datastructures.Pair; - - -public class SelectByRelation extends AbstractRelation { - - GenericRelation base; - int baseLength; - String bindingPattern; - int[] boundPositions; - GenericRelation constraint; - - public SelectByRelation(GenericRelation base, String bindingPattern, GenericRelation constraint) { - super(); - this.base = base; - this.bindingPattern = bindingPattern; - TIntArrayList boundPositionArray = new TIntArrayList(); - baseLength = bindingPattern.length(); - for(int i=0;i[] getFields() { - return base.getFields(); - } - @Override - public boolean isRealizable() { - return base.isRealizable(); - } - @Override - public GenericRelation select(String bindingPattern, Object[] constants) { - return new SelectByRelation(base.select(bindingPattern, constants), bindingPattern, constraint); - } - @Override - public List realize(ReadGraph g) throws DatabaseException { - ArrayList result = new ArrayList(); - for(Object[] tuple : base.realize(g)) - if(constraint.contains(g, map(tuple))) - result.add(tuple); - return result; - } - -} +/******************************************************************************* + * 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.db.layer0.genericrelation.combinators; + +import gnu.trove.list.array.TIntArrayList; + +import java.util.ArrayList; +import java.util.List; + +import org.simantics.db.ReadGraph; +import org.simantics.db.exception.DatabaseException; +import org.simantics.db.layer0.adapter.GenericRelation; +import org.simantics.db.layer0.genericrelation.AbstractRelation; +import org.simantics.utils.datastructures.Pair; + + +public class SelectByRelation extends AbstractRelation { + + GenericRelation base; + int baseLength; + String bindingPattern; + int[] boundPositions; + GenericRelation constraint; + + public SelectByRelation(GenericRelation base, String bindingPattern, GenericRelation constraint) { + super(); + this.base = base; + this.bindingPattern = bindingPattern; + TIntArrayList boundPositionArray = new TIntArrayList(); + baseLength = bindingPattern.length(); + for(int i=0;i[] getFields() { + return base.getFields(); + } + @Override + public boolean isRealizable() { + return base.isRealizable(); + } + @Override + public GenericRelation select(String bindingPattern, Object[] constants) { + return new SelectByRelation(base.select(bindingPattern, constants), bindingPattern, constraint); + } + @Override + public List realize(ReadGraph g) throws DatabaseException { + ArrayList result = new ArrayList(); + for(Object[] tuple : base.realize(g)) + if(constraint.contains(g, map(tuple))) + result.add(tuple); + return result; + } + +}