com.github.carlomicieli.rest.representations.RollingStockRepresentation.java Source code

Java tutorial

Introduction

Here is the source code for com.github.carlomicieli.rest.representations.RollingStockRepresentation.java

Source

/*
 * Copyright 2012 the original author or authors.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *   http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.github.carlomicieli.rest.representations;

import javax.ws.rs.core.EntityTag;
import javax.ws.rs.core.MultivaluedMap;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;

import org.apache.commons.lang3.builder.HashCodeBuilder;

import com.github.carlomicieli.entities.Brand;
import com.github.carlomicieli.entities.Era;
import com.github.carlomicieli.entities.PowerMethod;
import com.github.carlomicieli.entities.Railway;
import com.github.carlomicieli.entities.RollingStock;
import com.github.carlomicieli.entities.Scale;

/**
 * 
 * @author Carlo Micieli
 *
 */
@XmlRootElement(name = "rollingStock", namespace = "http://schemas.trenako.com/2012/05")
@XmlAccessorType(XmlAccessType.PROPERTY)
public class RollingStockRepresentation {
    private final RollingStock rollingStock;

    private String brandName;
    private String scaleName;
    private String railwayName;

    public RollingStockRepresentation() {
        this.rollingStock = new RollingStock();
    }

    public RollingStockRepresentation(RollingStock rollingStock) {
        this.rollingStock = rollingStock;
    }

    public RollingStockRepresentation(MultivaluedMap<String, String> formValues) {
        this();
    }

    /**
     * Returns the rolling stock entity wrapped object.
     * @return the entity object.
     */
    public RollingStock getInner() {
        return this.rollingStock;
    }

    /**
     * Return the unique id.
     * @return the unique id.
     */
    public long getId() {
        return getInner().getId();
    }

    /**
     * Set the unique id.
     * @param id the unique id.
     */
    public void setId(long id) {
        getInner().setId(id);
    }

    /**
     * Return the brand name.
     * @return the brand name.
     */
    @XmlTransient
    Brand getBrand() {
        return getInner().getBrand();
    }

    /**
     * Set the brand name.
     * @param brand the brand name.
     */
    void setBrand(Brand brand) {
        getInner().setBrand(brand);
    }

    /**
     * Returns the brand name.
     * @return the brand name.
     */
    @XmlElement(name = "brand")
    public String getBrandName() {
        if (this.brandName != null)
            return this.brandName;
        if (getBrand() == null)
            return null;
        return getBrand().getName();
    }

    /**
     * Sets the brand name.
     * @param brandName
     */
    public void setBrandName(String brandName) {
        this.brandName = brandName;
    }

    /**
     * Return the item number.
     * @return the item number.
     */
    public String getItemNumber() {
        return getInner().getItemNumber();
    }

    /**
     * Set the item number.
     * @param itemNumber the item number.
     */
    public void setItemNumber(String itemNumber) {
        getInner().setItemNumber(itemNumber);
    }

    /**
     * Return the rolling stock description.
     * @return the rolling stock description.
     */
    public String getDescription() {
        return getInner().getDescription();
    }

    /**
     * Set the rolling stock description.
     * @param description the rolling stock description.
     */
    public void setDescription(String description) {
        getInner().setDescription(description);
    }

    /**
     * Return the railway name.
     * @return the railway name.
     */
    @XmlTransient
    public Railway getRailway() {
        return getInner().getRailway();
    }

    /**
     * Set the railway name.
     * @param railway the railway name.
     */
    public void setRailway(Railway railway) {
        getInner().setRailway(railway);
    }

    /**
     * Return the railway name.
     * @return the railway name.
     */
    @XmlElement(name = "railway")
    public String getRailwayName() {
        if (this.railwayName != null)
            return this.railwayName;
        if (getRailway() == null)
            return null;
        return getRailway().getName();
    }

    /**
     * Set the railway name.
     * @param railwayName the railway name.
     */
    public void setRailwayName(String railwayName) {
        this.railwayName = railwayName;
    }

    /**
     * Return the scale.
     * @return the scale.
     */
    @XmlTransient
    public Scale getScale() {
        return getInner().getScale();
    }

    /**
     * Set the scale.
     * @param scale the scale.
     */
    public void setScale(Scale scale) {
        getInner().setScale(scale);
    }

    /**
     * Return the scale.
     * @return the scale.
     */
    @XmlElement(name = "scale")
    public String getScaleName() {
        if (this.scaleName != null)
            return this.scaleName;
        if (getScale() == null)
            return null;
        return getScale().getName();
    }

    /**
     * Set the scale.
     * @param scaleName the scale.
     */
    public void setScaleName(String scaleName) {
        this.scaleName = scaleName;
    }

    /**
     * Returns the model era.
     * @return the model era.
     */
    public String getEra() {
        return getInner().getEra().toString();
    }

    /**
     * Sets the model era.
     * @param era the model era.
     */
    public void setEra(String era) {
        getInner().setEra(Enum.valueOf(Era.class, era));
    }

    /**
     * Returns the model power method.
     * @return the model power method.
     */
    public String getPowerMethod() {
        return getInner().getPowerMethod().toString();
    }

    /**
     * Sets the model power method.
     * @param powerMethod the model power method.
     */
    public void setPowerMethod(String powerMethod) {
        getInner().setPowerMethod(Enum.valueOf(PowerMethod.class, powerMethod));
    }

    /**
     * Compute the ETag for the current player representation.
     * @return the ETag value.
     */
    public EntityTag tag() {
        return new EntityTag(Long.toHexString(this.hashCode()));
    }

    /**
     * Returns a string representation of this <em>BrandRepresentation</em>.
     * @return a string representation of the object.
     */
    @Override
    public int hashCode() {
        return new HashCodeBuilder(15, 37).append(getBrandName()).append(getItemNumber()).append(getDescription())
                .append(getScale()).append(getRailway()).append(getEra()).append(getPowerMethod()).toHashCode();
    }

}