Package org.zanata.transformer

Source Code of org.zanata.transformer.TargetTransformer

package org.zanata.transformer;

import java.util.Set;

import org.zanata.model.HTextFlowTarget;
import org.zanata.rest.dto.extensions.comment.SimpleComment;
import org.zanata.rest.dto.extensions.gettext.TextFlowTargetExtension;
import org.zanata.rest.dto.resource.ExtensionSet;
import org.zanata.rest.dto.resource.TextFlowTarget;

import static com.google.common.base.Objects.*;

/**
* @author Patrick Huang <a
*         href="mailto:pahuang@redhat.com">pahuang@redhat.com</a>
*/
public class TargetTransformer implements
        Transformer<TextFlowTarget, HTextFlowTarget> {
    private final TargetCommentTransformer targetCommentTransformer =
            new TargetCommentTransformer();
    private final Set<String> enabledExtension;

    public TargetTransformer(Set<String> enabledExtension) {
        this.enabledExtension = enabledExtension;
    }

    @Override
    public boolean transform(TextFlowTarget from, HTextFlowTarget to) {
        boolean changed = false;
        if (!equal(from.getContents(), to.getContents())) {
            to.setContents(from.getContents());
            changed = true;
        }
        if (!equal(from.getState(), to.getState())) {
            to.setState(from.getState());
            changed = true;
        }
        changed |=
                transferFromTextFlowTargetExtensions(from.getExtensions(true),
                        to);
        return changed;
    }

    private boolean transferFromTextFlowTargetExtensions(
            ExtensionSet<TextFlowTargetExtension> extensions,
            HTextFlowTarget hTarget) {
        boolean changed = false;
        if (enabledExtension.contains(SimpleComment.ID)) {
            SimpleComment comment = extensions.findByType(SimpleComment.class);
            if (comment != null) {
                changed = targetCommentTransformer.transform(comment, hTarget);
            }
        }

        return changed;

    }
}
TOP

Related Classes of org.zanata.transformer.TargetTransformer

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.