/** * Unconditionally clone an InDesign Object. * * @param sourceObj * @return The clone of the object. * @throws Exception */ public InDesignComponent clone(InDesignComponent sourceComp) throws Exception { if (sourceComp instanceof InDesignObject) { return clone((InDesignObject) sourceComp); } logger.debug("Cloning component " + sourceComp.getClass().getSimpleName()); InDesignComponent clone = sourceComp.getClass().newInstance(); clone.setDocument(this); clone.loadComponent(sourceComp); return clone; }
/** @return */ public String reportChildObjects() { StringBuilder report = new StringBuilder("Child Objects::\n"); for (InDesignComponent comp : this.getChildren()) { String dsName = comp.getInxTagName(); if (comp instanceof InDesignObject) { InDesignObject obj = (InDesignObject) comp; report.append("[").append(obj.getId()).append("] "); } report .append(comp.getClass().getSimpleName()) .append(", <") .append(dsName) .append(">") .append("\n"); } return report.toString(); }