/** * {@link JmDiagram}を削除する。 * * @param reference 削除する{@link JmDiagram}への参照 * @return 削除したモデル * @throws EntityNotFoundException 参照で示す{@link Entity}が見つからなかった場合 * @throws IllegalArgumentException 引数に{@code null}を与えた場合 */ public JmDiagram deleteDiagram(EntityRef<? extends JmDiagram> reference) { Validate.notNull(reference); JmDiagram deleted = diagrams.delete(reference); logger.info("diagram deleted: " + deleted); context.getEventBroker().fireEvent(new StoredEvent<JmDiagram>(diagrams, deleted, null)); return deleted; }
/** * {@link JmDiagram}を保存する。 * * @param diagram ダイアグラム * @throws IllegalArgumentException 引数に{@code null}を与えた場合 */ public void store(JmDiagram diagram) { Validate.notNull(diagram); JmDiagram old = diagrams.store(diagram); if (old == null) { logger.debug(LogMarker.LIFECYCLE, "diagram stored: " + diagram); } else { logger.debug(LogMarker.LIFECYCLE, "diagram updated: (old) " + old); logger.debug(LogMarker.LIFECYCLE, " (new) " + diagram); } context.getEventBroker().fireEvent(new StoredEvent<JmDiagram>(diagrams, old, diagram)); }
/** * このファセットのダイアグラムのうち、{@code name}で示した名前を持つダイアグラムを返す。 * * @param name ダイアグラム名 * @return ダイアグラム * @throws DiagramNotFoundException ダイアグラムが見つからなかった場合 * @throws TooManyDiagramsFoundException 同名のダイアグラムが複数見つかった場合 */ public JmDiagram getDiagram(final String name) { Collection<JmDiagram> c = Collections2.filter( diagrams.getEntitiesAsList(), new Predicate<JmDiagram>() { public boolean apply(JmDiagram diagram) { return StringUtils.equals(diagram.getName(), name); } }); try { return Iterables.getOnlyElement(c); } catch (NoSuchElementException e) { throw new DiagramNotFoundException("name=" + name); } catch (IllegalArgumentException e) { throw new TooManyDiagramsFoundException(c); } }
/** * IDから、{@link Entity}を引き当てる。 * * @param id ENTITY ID * @return {@link Entity} * @throws EntityNotFoundException IDで示す{@link Entity}が見つからなかった場合 * @throws IllegalArgumentException 引数に{@code null}を与えた場合 */ public Entity resolve(UUID id) { Validate.notNull(id); return diagrams.resolve(id); }
/** * {@link EntityRef}から、{@link Entity}を引き当てる。 * * @param <T> {@link Entity}の型 * @param reference {@link EntityRef} * @return {@link Entity} * @throws EntityNotFoundException 参照で示す{@link Entity}が見つからなかった場合 * @throws IllegalArgumentException 引数に{@code null}を与えた場合 */ public <T extends Entity> T resolve(EntityRef<T> reference) { Validate.notNull(reference); return diagrams.resolve(reference); }
public Set<? extends Entity> getEntities() { return diagrams.getEntitiesAsSet(); }
/** * このファセットが持つダイアグラムの {@link List} を返す。 * * @return このファセットが持つダイアグラムの {@link List} */ public List<? extends JmDiagram> getDiagrams() { return diagrams.getEntitiesAsList(); }