/** * Returns a single parent of the given tag. If there are multiple parents, throws a WindupException. */ public static TagModel getSingleParent(TagModel tag) { final Iterator<TagModel> parents = tag.getDesignatedByTags().iterator(); if (!parents.hasNext()) throw new WindupException("Tag is not designated by any tags: " + tag); final TagModel maybeOnlyParent = parents.next(); if (parents.hasNext()) { StringBuilder sb = new StringBuilder(); tag.getDesignatedByTags().iterator().forEachRemaining(x -> sb.append(x).append(", ")); throw new WindupException(String.format("Tag %s is designated by multiple tags: %s", tag, sb.toString())); } return maybeOnlyParent; } }
/** * Returns a single parent of the given tag. If there are multiple parents, throws a WindupException. */ public static TagModel getSingleParent(TagModel tag) { final Iterator<TagModel> parents = tag.getDesignatedByTags().iterator(); if (!parents.hasNext()) throw new WindupException("Tag is not designated by any tags: " + tag); final TagModel maybeOnlyParent = parents.next(); if (parents.hasNext()) { StringBuilder sb = new StringBuilder(); tag.getDesignatedByTags().iterator().forEachRemaining(x -> sb.append(x).append(", ")); throw new WindupException(String.format("Tag %s is designated by multiple tags: %s", tag, sb.toString())); } return maybeOnlyParent; } }
for (TagModel currentTag : currentSet) for (TagModel parent : currentTag.getDesignatedByTags()) { if (superTag.equals(parent)) return true;
for (TagModel currentTag : currentSet) for (TagModel parent : currentTag.getDesignatedByTags()) { if (superTag.equals(parent)) return true;
private static TagModel getNonPlaceParent(TagGraphService tagService, TagModel tag) { if (tag == null) return null; final TagModel placeRoot = tagService.getTagByName(MAPPING_OF_PLACEMENT_NAMES); final Iterator<TagModel> parents = tag.getDesignatedByTags().iterator(); if (!parents.hasNext()) throw new WindupException("Tag is not designated by any tags: " + tag); TagModel nonPlaceParent = null; while (parents.hasNext()) { TagModel parentTag = parents.next(); if (TagGraphService.isTagUnderTagOrSame(parentTag, placeRoot)) continue; if (nonPlaceParent != null) throw new WindupException( String.format("Tag %s has more than one non-placement parent: %s, %s", tag.getName(), nonPlaceParent, parentTag)); nonPlaceParent = parentTag; } return nonPlaceParent; }
private static TagModel getNonPlaceParent(TagGraphService tagService, TagModel tag) { if (tag == null) return null; final TagModel placeRoot = tagService.getTagByName(MAPPING_OF_PLACEMENT_NAMES); final Iterator<TagModel> parents = tag.getDesignatedByTags().iterator(); if (!parents.hasNext()) throw new WindupException("Tag is not designated by any tags: " + tag); TagModel nonPlaceParent = null; while (parents.hasNext()) { TagModel parentTag = parents.next(); if (TagGraphService.isTagUnderTagOrSame(parentTag, placeRoot)) continue; if (nonPlaceParent != null) throw new WindupException( String.format("Tag %s has more than one non-placement parent: %s, %s", tag.getName(), nonPlaceParent, parentTag)); nonPlaceParent = parentTag; } return nonPlaceParent; }