001/*
002 * (C) Copyright 2009-2010 Nuxeo SA (http://nuxeo.com/).
003 * This is unpublished proprietary source code of Nuxeo SA. All rights reserved.
004 * Notice of copyright on this source code does not indicate publication.
005 *
006 * Contributors:
007 *     Anahide Tchertchian
008 */
009package org.nuxeo.ecm.platform.forms.layout.api.impl;
010
011import java.util.List;
012import java.util.Map;
013
014import org.nuxeo.ecm.platform.forms.layout.api.WidgetTypeConfiguration;
015import org.nuxeo.ecm.platform.forms.layout.api.WidgetTypeDefinition;
016
017/**
018 * Model for a widget type definition on client side.
019 *
020 * @author Anahide Tchertchian
021 * @since 5.4
022 */
023public class WidgetTypeDefinitionImpl implements WidgetTypeDefinition {
024
025    private static final long serialVersionUID = 1L;
026
027    protected String name;
028
029    /**
030     * @since 6.0
031     */
032    protected List<String> aliases;
033
034    protected String handlerClassName;
035
036    protected Map<String, String> properties;
037
038    protected WidgetTypeConfiguration configuration;
039
040    // needed by GWT serialization
041    public WidgetTypeDefinitionImpl() {
042        super();
043    }
044
045    public WidgetTypeDefinitionImpl(String name, String handlerClassName, Map<String, String> properties,
046            WidgetTypeConfiguration configuration) {
047        super();
048        this.name = name;
049        this.handlerClassName = handlerClassName;
050        this.properties = properties;
051        this.configuration = configuration;
052    }
053
054    @Override
055    public WidgetTypeConfiguration getConfiguration() {
056        return configuration;
057    }
058
059    @Override
060    public String getHandlerClassName() {
061        return handlerClassName;
062    }
063
064    @Override
065    public String getName() {
066        return name;
067    }
068
069    @Override
070    public Map<String, String> getProperties() {
071        return properties;
072    }
073
074    @Override
075    public List<String> getAliases() {
076        return aliases;
077    }
078
079    public void setAliases(List<String> aliases) {
080        this.aliases = aliases;
081    }
082
083    /**
084     * @since 7.2
085     */
086    @Override
087    public boolean equals(Object obj) {
088        if (!(obj instanceof WidgetTypeDefinitionImpl)) {
089            return false;
090        }
091        if (obj == this) {
092            return true;
093        }
094        WidgetTypeDefinitionImpl w = (WidgetTypeDefinitionImpl) obj;
095        return new EqualsBuilder().append(name, w.name).append(aliases, w.aliases).append(handlerClassName,
096                w.handlerClassName).append(properties, w.properties).append(configuration, w.configuration).isEquals();
097    }
098
099}