@Test(expected = HmxException.class) public void testCreateRelation_4() throws HmxException { final Proposition first = this.pericope.getPropositionAt(0); this.modelHandler.createRelation(Arrays.asList(first, this.pericope.getPropositionAt(1)), ModelHandlerImplTest.defaultRelationTemplate); final Relation relation = first.getSuperOrdinatedRelation(); Assert.assertNotNull(relation); this.modelHandler.createRelation(Arrays.asList(first, relation), ModelHandlerImplTest.defaultRelationTemplate); }
@Override public void createRelation(final List<? extends AbstractConnectable> associates, final RelationTemplate template) throws HmxException { final int associateCount = associates.size(); if (associateCount < 2 || associateCount > 2 && !template.canHaveMoreThanTwoAssociates()) { throw new IllegalArgumentException(); } for (final AbstractConnectable singleAssociate : associates) { if (singleAssociate.getSuperOrdinatedRelation() != null) { throw new HmxException(HmxMessage.ERROR_RELATION_UNCONNECTED); } } final int lastIndex = associates.size() - 1; for (int associateIndex = 0; associateIndex < lastIndex; associateIndex++) { final Proposition toCompare; if (associates.get(associateIndex + 1) instanceof Proposition) { toCompare = (Proposition) associates.get(associateIndex + 1); } else { toCompare = ((Relation) associates.get(associateIndex + 1)).getFirstPropositionContained(); } if (!associates.get(associateIndex).isConnectablePriorOf(toCompare)) { throw new HmxException(HmxMessage.ERROR_RELATION_UNCONNECTED); } } final Relation newRelation = new Relation(associates, template); this.notifyListeners(newRelation, false); }
ModelHandlerImpl extends AbstractModelHandler<Pericope> implements HmxModelHandler { @Override public void createRelation(final List<? extends AbstractConnectable> associates, final RelationTemplate template) throws HmxException { final int associateCount = associates.size(); if (associateCount < 2 || associateCount > 2 && !template.canHaveMoreThanTwoAssociates()) { throw new IllegalArgumentException(); } for (final AbstractConnectable singleAssociate : associates) { if (singleAssociate.getSuperOrdinatedRelation() != null) { throw new HmxException(HmxMessage.ERROR_RELATION_UNCONNECTED); } } final int lastIndex = associates.size() - 1; for (int associateIndex = 0; associateIndex < lastIndex; associateIndex++) { final Proposition toCompare; if (associates.get(associateIndex + 1) instanceof Proposition) { toCompare = (Proposition) associates.get(associateIndex + 1); } else { toCompare = ((Relation) associates.get(associateIndex + 1)).getFirstPropositionContained(); } if (!associates.get(associateIndex).isConnectablePriorOf(toCompare)) { throw new HmxException(HmxMessage.ERROR_RELATION_UNCONNECTED); } } final Relation newRelation = new Relation(associates, template); this.notifyListeners(newRelation, false); } }
ModelHandlerImpl extends AbstractModelHandler<Pericope> implements HmxModelHandler { @Override public void createRelation(final List<? extends AbstractConnectable> associates, final RelationTemplate template) throws HmxException { final int associateCount = associates.size(); if (associateCount < 2 || associateCount > 2 && !template.canHaveMoreThanTwoAssociates()) { throw new IllegalArgumentException(); } for (final AbstractConnectable singleAssociate : associates) { if (singleAssociate.getSuperOrdinatedRelation() != null) { throw new HmxException(HmxMessage.ERROR_RELATION_UNCONNECTED); } } final int lastIndex = associates.size() - 1; for (int associateIndex = 0; associateIndex < lastIndex; associateIndex++) { final Proposition toCompare; if (associates.get(associateIndex + 1) instanceof Proposition) { toCompare = (Proposition) associates.get(associateIndex + 1); } else { toCompare = ((Relation) associates.get(associateIndex + 1)).getFirstPropositionContained(); } if (!associates.get(associateIndex).isConnectablePriorOf(toCompare)) { throw new HmxException(HmxMessage.ERROR_RELATION_UNCONNECTED); } } final Relation newRelation = new Relation(associates, template); this.notifyListeners(newRelation, false); } ModelHandlerImpl(final Pericope model); }
ModelHandlerImpl extends AbstractModelHandler<Pericope> implements HmxModelHandler { @Override public void createRelation(final List<? extends AbstractConnectable> associates, final RelationTemplate template) throws HmxException { final int associateCount = associates.size(); if (associateCount < 2 || associateCount > 2 && !template.canHaveMoreThanTwoAssociates()) { throw new IllegalArgumentException(); } for (final AbstractConnectable singleAssociate : associates) { if (singleAssociate.getSuperOrdinatedRelation() != null) { throw new HmxException(HmxMessage.ERROR_RELATION_UNCONNECTED); } } final int lastIndex = associates.size() - 1; for (int associateIndex = 0; associateIndex < lastIndex; associateIndex++) { final Proposition toCompare; if (associates.get(associateIndex + 1) instanceof Proposition) { toCompare = (Proposition) associates.get(associateIndex + 1); } else { toCompare = ((Relation) associates.get(associateIndex + 1)).getFirstPropositionContained(); } if (!associates.get(associateIndex).isConnectablePriorOf(toCompare)) { throw new HmxException(HmxMessage.ERROR_RELATION_UNCONNECTED); } } final Relation newRelation = new Relation(associates, template); this.notifyListeners(newRelation, false); } ModelHandlerImpl(final Pericope model); @Override void resetModel(final Pericope model); @Override void setMetaData(final String title, final String author, final String comment, final String originTextFontFamily,
            final int originTextFontSize); @Override void indentPropositionUnderParent(final Proposition target, final Proposition parent, final SyntacticalFunction function); @Override void removeOneIndentation(final Proposition target); @Override boolean removeOneIndentationAffectsOthers(final Proposition target); @Override void mergePropositions(final Proposition prop1, final Proposition prop2); @Override void splitProposition(final Proposition target, final ClauseItem lastItemInFirstPart); @Override void resetStandaloneStateOfPartAfterArrow(final Proposition partAfterArrow); @Override void mergeClauseItemWithPrior(final ClauseItem itemTwo); @Override void mergeClauseItemWithFollower(final ClauseItem itemOne); @Override void splitClauseItem(final ClauseItem target, final String firstPart); @Override void setLabelText(final Proposition target, final String labelText); @Override void setSynTranslation(final Proposition target, final String synTranslation); @Override void setSemTranslation(final Proposition target, final String semTranslation); @Override void setComment(final ICommentable target, final String comment); @Override void setSyntacticalFunction(final ICanHaveSyntacticalFunction target, final SyntacticalFunction function); @Override void setClauseItemFontStyle(final ClauseItem target, final Style style); @Override void createRelation(final List<? extends AbstractConnectable> associates, final RelationTemplate template); @Override void rotateAssociateRoles(final Relation target); @Override void alterRelationType(final Relation target, final RelationTemplate template); @Override void removeRelation(final Relation target); @Override void addNewPropositions(final String originText, final boolean inFront); @Override void mergeWithOtherPericope(final Pericope otherPericope, final boolean inFront); @Override void removePropositions(final List<Proposition> targets); }
ModelHandlerImpl extends AbstractModelHandler<Pericope> implements HmxModelHandler { @Override public void createRelation(final List<? extends AbstractConnectable> associates, final RelationTemplate template) throws HmxException { final int associateCount = associates.size(); if (associateCount < 2 || associateCount > 2 && !template.canHaveMoreThanTwoAssociates()) { throw new IllegalArgumentException(); } for (final AbstractConnectable singleAssociate : associates) { if (singleAssociate.getSuperOrdinatedRelation() != null) { throw new HmxException(HmxMessage.ERROR_RELATION_UNCONNECTED); } } final int lastIndex = associates.size() - 1; for (int associateIndex = 0; associateIndex < lastIndex; associateIndex++) { final Proposition toCompare; if (associates.get(associateIndex + 1) instanceof Proposition) { toCompare = (Proposition) associates.get(associateIndex + 1); } else { toCompare = ((Relation) associates.get(associateIndex + 1)).getFirstPropositionContained(); } if (!associates.get(associateIndex).isConnectablePriorOf(toCompare)) { throw new HmxException(HmxMessage.ERROR_RELATION_UNCONNECTED); } } final Relation newRelation = new Relation(associates, template); this.notifyListeners(newRelation, false); } ModelHandlerImpl(final Pericope model); @Override void resetModel(final Pericope model); @Override void setMetaData(final String title, final String author, final String comment, final String originTextFontFamily,
            final int originTextFontSize); @Override void indentPropositionUnderParent(final Proposition target, final Proposition parent, final SyntacticalFunction function); @Override void removeOneIndentation(final Proposition target); @Override boolean removeOneIndentationAffectsOthers(final Proposition target); @Override void mergePropositions(final Proposition prop1, final Proposition prop2); @Override void splitProposition(final Proposition target, final ClauseItem lastItemInFirstPart); @Override void resetStandaloneStateOfPartAfterArrow(final Proposition partAfterArrow); @Override void mergeClauseItemWithPrior(final ClauseItem itemTwo); @Override void mergeClauseItemWithFollower(final ClauseItem itemOne); @Override void splitClauseItem(final ClauseItem target, final String firstPart); @Override void setLabelText(final Proposition target, final String labelText); @Override void setSynTranslation(final Proposition target, final String synTranslation); @Override void setSemTranslation(final Proposition target, final String semTranslation); @Override void setComment(final ICommentable target, final String comment); @Override void setSyntacticalFunction(final ICanHaveSyntacticalFunction target, final SyntacticalFunction function); @Override void setClauseItemFontStyle(final ClauseItem target, final Style style); @Override void createRelation(final List<? extends AbstractConnectable> associates, final RelationTemplate template); @Override void rotateAssociateRoles(final Relation target); @Override void alterRelationType(final Relation target, final RelationTemplate template); @Override void removeRelation(final Relation target); @Override void addNewPropositions(final String originText, final boolean inFront); @Override void mergeWithOtherPericope(final Pericope otherPericope, final boolean inFront); @Override void removePropositions(final List<Proposition> targets);  }