From: Lars H. <lh...@us...> - 2005-03-06 22:37:03
|
Update of /cvsroot/tmapi-utils/tmapi-utils/src/org/tmapiutils/query/tolog/predicates In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12826/src/org/tmapiutils/query/tolog/predicates Modified Files: ResourcePredicate.java RolePlayerPredicate.java Log Message: More TM4J -> TMAPI translations Index: RolePlayerPredicate.java =================================================================== RCS file: /cvsroot/tmapi-utils/tmapi-utils/src/org/tmapiutils/query/tolog/predicates/RolePlayerPredicate.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** RolePlayerPredicate.java 6 Mar 2005 17:30:00 -0000 1.1 --- RolePlayerPredicate.java 6 Mar 2005 22:36:53 -0000 1.2 *************** *** 11,14 **** --- 11,15 ---- import org.tmapiutils.query.tolog.parser.Variable; import org.tmapiutils.query.tolog.utils.VariableSet; + // TMAPI import org.tmapi.core.Association; import org.tmapi.core.AssociationRole; *************** *** 71,79 **** while (it.hasNext()) { Association a = (Association)it.next(); ! for (Iterator members = a.getAssociationRoles().iterator();members.hasNext();) { ! AssociationRole m = (AssociationRole)members.next(); ! for (Iterator players = m.getPlayers().iterator(); players.hasNext();) { ! Topic p = (Topic)players.next(); ! addResultsRow(ret, new Object[] {m, p}); } } --- 72,79 ---- while (it.hasNext()) { Association a = (Association)it.next(); ! for (Iterator roles = a.getAssociationRoles().iterator(); roles.hasNext();) { ! AssociationRole role = (AssociationRole) roles.next(); ! if (role.getPlayer() != null) { ! addResultsRow(ret, new Object[] {role, role.getPlayer()}); } } *************** *** 86,95 **** * @param ret */ ! private void closedMatch(AssociationRole member, Topic topic, VariableSet ret) throws TologProcessingException { ! for (Iterator it = member.getPlayers().iterator(); it.hasNext();) { ! if (it.next().equals(topic)) { ! addResultsRow(ret, new Object[] {member, topic}); ! } ! } } --- 86,94 ---- * @param ret */ ! private void closedMatch(AssociationRole role, Topic topic, VariableSet ret) throws TologProcessingException { ! Topic player = role.getPlayer(); ! if ((player != null) && player.equals(topic)) { ! addResultsRow(ret, new Object[] {role, topic}); ! } } *************** *** 98,105 **** * @param ret */ ! private void matchRolePlayers(AssociationRole member, VariableSet ret) throws TologProcessingException { ! for (Iterator it = member.getPlayers().iterator(); it.hasNext();) { ! addResultsRow(ret, new Object[] {member, it.next()}); ! } } --- 97,105 ---- * @param ret */ ! private void matchRolePlayers(AssociationRole role, VariableSet ret) throws TologProcessingException { ! Topic player = role.getPlayer(); ! if (player != null) { ! addResultsRow(ret, new Object[] {role, player}); ! } } *************** *** 109,115 **** */ private void matchRolesPlayed(Topic topic, VariableSet ret) throws TologProcessingException { ! for (Iterator it = topic.getRolesPlayed().iterator(); it.hasNext();) { ! addResultsRow(ret, new Object[] {it.next(), topic}); ! } } --- 109,115 ---- */ private void matchRolesPlayed(Topic topic, VariableSet ret) throws TologProcessingException { ! for (Iterator it = topic.getRolesPlayed().iterator(); it.hasNext();) { ! addResultsRow(ret, new Object[] {it.next(), topic}); ! } } Index: ResourcePredicate.java =================================================================== RCS file: /cvsroot/tmapi-utils/tmapi-utils/src/org/tmapiutils/query/tolog/predicates/ResourcePredicate.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** ResourcePredicate.java 6 Mar 2005 18:14:09 -0000 1.2 --- ResourcePredicate.java 6 Mar 2005 22:36:52 -0000 1.3 *************** *** 8,18 **** import java.util.List; - import org.tmapi.core.Locator; import org.tmapiutils.query.tolog.TologParserException; import org.tmapiutils.query.tolog.TologProcessingException; import org.tmapiutils.query.tolog.parser.Variable; import org.tmapiutils.query.tolog.utils.VariableSet; ! import org.tmapi.core.DataObject; import org.tmapi.core.TopicMap; import org.tmapi.index.core.OccurrencesIndex; --- 8,25 ---- import java.util.List; import org.tmapiutils.query.tolog.TologParserException; import org.tmapiutils.query.tolog.TologProcessingException; import org.tmapiutils.query.tolog.parser.Variable; import org.tmapiutils.query.tolog.utils.VariableSet; ! ! import org.tmapiutils.utils.IndexUtils; ! // TMAPI ! import org.tmapi.core.Locator; ! import org.tmapi.core.TopicMapObject; import org.tmapi.core.TopicMap; + import org.tmapi.core.Occurrence; + import org.tmapi.core.Variant; + import org.tmapi.core.TMAPIException; + import org.tmapi.index.core.VariantsIndex; import org.tmapi.index.core.OccurrencesIndex; *************** *** 30,34 **** }; ! private OccurrencesIndex m_oli; /* (non-Javadoc) --- 37,42 ---- }; ! private OccurrencesIndex _occIdx; ! private VariantsIndex _varIdx; /* (non-Javadoc) *************** *** 54,90 **** VariableSet ret = new VariableSet(); initialiseResultsSet(ret); ! if ((object instanceof DataObject) && (locator instanceof Variable)) { ! DataObject d = (DataObject)object; ! if (d.getResource() != null) { ! addResultsRow(ret, new Object[] {object, d.getResource()}); ! } ! } else if ((object instanceof Variable) && (locator instanceof Locator)) { ! Iterator it = m_oli.getOccurrencesByResource((Locator)locator).iterator(); ! while (it.hasNext()) { ! addResultsRow(ret, new Object[] {it.next(), locator}); ! } ! // TODO: Support Variant lookup ! } else if ((object instanceof Variable) && (locator instanceof Variable)) { ! // TODO: Implement index methods to support this. ! Iterator it = getTopicMap().getObjects().iterator(); ! while (it.hasNext()) { ! Object tmo = it.next(); ! if (tmo instanceof DataObject) { ! DataObject dataObj = (DataObject)tmo; ! Locator l = dataObj.getResource(); ! if (l != null) { ! addResultsRow(ret, new Object[] { dataObj, l }); } } } ! } else if ((object instanceof DataObject) && (locator instanceof Locator)) { ! DataObject d = (DataObject)object; ! if ((d.getResource() != null) && (d.getResource().equals((Locator)locator))) { ! addResultsRow(ret, new Object[] { object, locator }); ! } ! } ! return ret; } /* (non-Javadoc) * @see org.tmapiutils.query.tolog.parser.Predicate#initialise(org.tmapi.core.TopicMap) --- 62,165 ---- VariableSet ret = new VariableSet(); initialiseResultsSet(ret); ! ! if ((object instanceof Occurrence) || (object instanceof Variant)) { ! Locator resource = getResource(object); ! if (locator instanceof Locator) { ! if ((resource != null) && resource.equals(locator)) { ! addResultsRow(ret, new Object[] { object, locator }); ! } ! } ! else { ! // Locator is a variable ! if (resource != null) { ! addResultsRow(ret, new Object[] { object, resource }); ! } ! } ! } ! else if ((object instanceof Variable) && (locator instanceof Locator)) { ! IndexUtils.updateIndex(_occIdx); ! for (Iterator iter = _occIdx.getOccurrencesByResource(locator); iter.hasNext();) { ! addResultsRow(ret, new Object[] {iter.next(), locator}); ! } ! IndexUtils.updateIndex(_varIdx); ! for (Iterator iter = _varIdx.getVariantsByResource(locator); iter.hasNext();) { ! addResultsRow(ret, new Object[] {iter.next(), locator}); ! } ! } ! else if ((object instanceof Variable) && (locator instanceof Variable)) { ! Topic topic; ! Locator resource; ! for (Iterator iter = getTopicMap().getTopics().iterator(); iter.hasNext();) { ! topic = (Topic) iter.next(); ! for (Iterator occIter = topic.getOccurrences().iterator(); occIter.hasNext();) { ! Occurrence occ = (Occurrence) occIter.next(); ! resource = occ.getResource(); ! if (resource != null) { ! addResultsRow(ret, new Object[] {occ, resource}); ! } ! } ! for (Iterator tnIter = topic.getTopicNames().iterator(); tnIter.hasNext();) { ! TopicName tn = (TopicName) tnIter.next(); ! for (Iterator varIter = tn.getVariants().iterator(); varIter.hasNext();) { ! Variant variant = (Variant) varIter.next(); ! resource = variant.getResource(); ! if (resource != null) { ! addResultsRow(ret, new Object[] {variant, resource}); ! } } } } ! } ! return ret; ! ! // if ((object instanceof DataObject) && (locator instanceof Variable)) { ! // DataObject d = (DataObject)object; ! // if (d.getResource() != null) { ! // addResultsRow(ret, new Object[] {object, d.getResource()}); ! // } ! // } else if ((object instanceof Variable) && (locator instanceof Locator)) { ! // Iterator it = m_oli.getOccurrencesByResource((Locator)locator).iterator(); ! // while (it.hasNext()) { ! // addResultsRow(ret, new Object[] {it.next(), locator}); ! // } ! // // TODO: Support Variant lookup ! // } else if ((object instanceof Variable) && (locator instanceof Variable)) { ! // // TODO: Implement index methods to support this. ! // Iterator it = getTopicMap().getObjects().iterator(); ! // while (it.hasNext()) { ! // Object tmo = it.next(); ! // if (tmo instanceof DataObject) { ! // DataObject dataObj = (DataObject)tmo; ! // Locator l = dataObj.getResource(); ! // if (l != null) { ! // addResultsRow(ret, new Object[] { dataObj, l }); ! // } ! // } ! // } ! // } else if ((object instanceof DataObject) && (locator instanceof Locator)) { ! // DataObject d = (DataObject)object; ! // if ((d.getResource() != null) && (d.getResource().equals((Locator)locator))) { ! // addResultsRow(ret, new Object[] { object, locator }); ! // } ! // } ! // return ret; } + /** + * Returns the resource from a variant or occurrence. + * + * @param dataObject Either an Occurrence or a Variant instance + * @return The resource of the object or <code>null</code>. + */ + private Locator getResource(TopicMapObject dataObject) { + if (object instanceof Occurrence) { + return ((Occurrence) object).getResource(); + } + else { + return ((Variant) object).getResource(); + } + } + + /* (non-Javadoc) * @see org.tmapiutils.query.tolog.parser.Predicate#initialise(org.tmapi.core.TopicMap) *************** *** 93,99 **** super.initialise(tm); try { ! m_oli = tm.getIndexManager().getOccurrencesIndex(); ! if (!m_oli.isOpen()) m_oli.open(); ! } catch (Exception ex) { throw new TologParserException("Error initialising index for " + PREDICATE_NAME, ex); } --- 168,174 ---- super.initialise(tm); try { ! _occIdx = (OccurrencesIndex) tm.getHelperObject(OccurrencesIndex.class); ! _varIdx = (VariantsIndex) tm.getHelperObject(VariantsIndex.class); ! } catch (TMAPIException ex) { throw new TologParserException("Error initialising index for " + PREDICATE_NAME, ex); } |