/** * *************************************************************************** * Copyright (c) 2010 Qcadoo Limited * Project: Qcadoo Framework * Version: 1.4 * * This file is part of Qcadoo. * * Qcadoo is free software; you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published * by the Free Software Foundation; either version 3 of the License, * or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * See the GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA * *************************************************************************** */ package com.qcadoo.model.internal; import com.qcadoo.model.api.*; import com.qcadoo.model.api.validators.ErrorMessage; import com.qcadoo.model.api.validators.GlobalMessage; import com.qcadoo.model.internal.api.EntityAwareCopyPerformers; import com.qcadoo.model.internal.api.EntityAwareEqualsPerformers; import com.qcadoo.model.internal.api.PerformerEntitiesChain; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; public final class EntityTreeNodeImpl implements EntityTreeNode, EntityAwareCopyPerformers, EntityAwareEqualsPerformers { private final List<EntityTreeNode> children = new ArrayList<>(); private final Entity entity; public EntityTreeNodeImpl(final Entity entity) { this.entity = entity; } @Override public List<EntityTreeNode> getChildren() { return children; } @Override public String getEntityNoteType() { return getStringField("entityType"); } public void addChild(final EntityTreeNode entityTreeNode) { children.add(entityTreeNode); } @Override public void setId(final Long id) { entity.setId(id); } @Override public Long getId() { return entity.getId(); } @Override public DataDefinition getDataDefinition() { return entity.getDataDefinition(); } @Override public Object getField(final String fieldName) { return entity.getField(fieldName); } @Override public String getStringField(final String fieldName) { return entity.getStringField(fieldName); } @Override public boolean getBooleanField(final String fieldName) { return entity.getBooleanField(fieldName); } @Override public BigDecimal getDecimalField(final String fieldName) { return entity.getDecimalField(fieldName); } @Override public Integer getIntegerField(final String fieldName) { return entity.getIntegerField(fieldName); } @Override public Long getLongField(final String fieldName) { return entity.getLongField(fieldName); } @Override public Entity getBelongsToField(final String fieldName) { return entity.getBelongsToField(fieldName); } @Override public EntityList getHasManyField(final String fieldName) { return entity.getHasManyField(fieldName); } @Override public List<Entity> getManyToManyField(final String fieldName) { return entity.getManyToManyField(fieldName); } @Override public EntityTree getTreeField(final String fieldName) { return entity.getTreeField(fieldName); } @Override public void setField(final String fieldName, final Object fieldValue) { entity.setField(fieldName, fieldValue); } @Override public Map<String, Object> getFields() { return entity.getFields(); } @Override public void addGlobalError(final String message, final String... vars) { entity.addGlobalError(message, vars); } @Override public void addGlobalMessage(final String message, final String... vars) { entity.addGlobalMessage(message, vars); } @Override public void addGlobalMessage(final String message, final boolean autoClose, final boolean extraLarge, final String... vars) { entity.addGlobalMessage(message, autoClose, extraLarge, vars); } @Override public void addGlobalError(final String message, final boolean autoClose, final String... vars) { entity.addGlobalError(message, autoClose, vars); } @Override public void addGlobalError(final String message, final boolean autoClose, final boolean extraLarge, final String... vars) { entity.addGlobalError(message, autoClose, extraLarge, vars); } @Override public void addError(final FieldDefinition fieldDefinition, final String message, final String... vars) { entity.addError(fieldDefinition, message, vars); } @Override public List<ErrorMessage> getGlobalErrors() { return entity.getGlobalErrors(); } @Override public List<GlobalMessage> getGlobalMessages() { return entity.getGlobalMessages(); } @Override public Map<String, ErrorMessage> getErrors() { return entity.getErrors(); } @Override public ErrorMessage getError(final String fieldName) { return entity.getError(fieldName); } @Override public boolean isValid() { return entity.isValid(); } @Override public void setNotValid() { entity.setNotValid(); } @Override public boolean isFieldValid(final String fieldName) { return entity.isFieldValid(fieldName); } @Override public String toString() { return entity.toString(); } @Override public boolean isActive() { return entity.isActive(); } @Override public void setActive(final boolean active) { entity.setActive(active); } @Override public EntityTreeNodeImpl copy() { return copy(new PerformerEntitiesChainImpl(this)); } @Override public EntityTreeNodeImpl copy(final PerformerEntitiesChain performersChain) { Entity entityCopy = null; if (entity instanceof EntityAwareCopyPerformers) { entityCopy = ((EntityAwareCopyPerformers) entity).copy(performersChain); } else { entityCopy = entity.copy(); } return new EntityTreeNodeImpl(entityCopy); } @Override public int hashCode() { return entity.hashCode(); } @Override public boolean equals(final Object obj) { return entity.equals(obj); } @Override public boolean equals(final Entity obj, final PerformerEntitiesChain performersChain) { boolean isEquals; if (entity instanceof EntityAwareEqualsPerformers) { isEquals = ((EntityAwareEqualsPerformers) entity).equals(obj, performersChain); } else { isEquals = entity.equals(obj); } return isEquals; } @Override public boolean flatEquals(final Entity obj) { boolean isEquals; if (entity instanceof EntityAwareEqualsPerformers) { isEquals = ((EntityAwareEqualsPerformers) entity).flatEquals(obj); } else { isEquals = entity.equals(obj); } return isEquals; } @Override public Date getDateField(String fieldName) { return entity.getDateField(fieldName); } }