package com.xmage.ws.resource; import com.xmage.core.decorators.Decorator; import com.xmage.ws.model.DomainErrors; import com.xmage.ws.representer.Representer; import java.util.ArrayList; import net.minidev.json.JSONObject; /** * * @author noxx */ public abstract class DefaultResource<R> implements Resource<R> { protected DomainErrors.Errors error = DomainErrors.Errors.STATUS_OK; protected R defaultResource; protected Representer<R> representer; protected java.util.List<Decorator> decorators = new ArrayList<>(); protected int version; protected DefaultResource(Representer<R> representer) { this.representer = representer; } @Override public int getError() { return error.getCode(); } @Override public R getDefault() { return defaultResource; } @Override public java.util.List<Decorator> getDecorators() { return decorators; } @Override public void addDecorator(Decorator decorator) { if (decorator != null) { this.decorators.add(decorator); } } @Override public JSONObject getJSONBody() { return representer.toJSON(this); } @Override public String getErrorMessage() { return error.getMessage(); } public int getVersion() { return version; } }