@Override public ISegments getTargetSegments (LocaleId trgLoc) { return createTarget(trgLoc, false, IResource.COPY_SEGMENTATION).getSegments(); }
@Override public Property setTargetProperty (LocaleId locId, Property property) { return createTarget(locId, false, IResource.COPY_SEGMENTATION).setProperty(property); }
@Override public TextFragment setTargetContent (LocaleId locId, TextFragment content) { TextContainer tc = createTarget(locId, false, CREATE_EMPTY); tc.setContent(content); // We can use this because the setContent() removed any segmentation return tc.getSegments().getFirstContent(); }
@Override public Segment getTargetSegment(LocaleId trgLoc, String segId, boolean createIfNeeded) { Segment seg = createTarget(trgLoc, false, IResource.COPY_SEGMENTATION).getSegments().get(segId); if (( seg == null ) && createIfNeeded ) { // If the segment does not exists: create a new one if requested seg = new Segment(segId); getTarget(trgLoc).getSegments().append(seg); //TODO consider appending a segment to variant source if present } return seg; }
@Override public Property createTargetProperty (LocaleId locId, String name, boolean overwriteExisting, int creationOptions) { // Get the target or create an isEmpty one TextContainer tc = createTarget(locId, false, CREATE_EMPTY); // Get the property if it exists Property prop = tc.getProperty(name); // If it does not exists or if we overwrite: create a new one if (( prop == null ) || overwriteExisting ) { // Get the source property prop = getSource().getProperty(name); if ( prop == null ) { // If there is no source, create an isEmpty property return tc.setProperty(new Property(name, "", false)); } else { // If there is a source property // Create a copy, isEmpty or not depending on the options if ( creationOptions == CREATE_EMPTY ) { return tc.setProperty(new Property(name, "", prop.isReadOnly())); } else { return tc.setProperty(prop.clone()); } } } return prop; }