/* 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 org.activiti.engine.impl.persistence.entity; import java.io.Serializable; import java.util.Arrays; import org.activiti.engine.impl.db.HasRevision; import org.activiti.engine.impl.db.PersistentObject; /** * @author Tom Baeyens */ public class ByteArrayEntity implements Serializable, PersistentObject, HasRevision { private static final long serialVersionUID = 1L; private static final Object PERSISTENTSTATE_NULL = new Object(); protected String id; protected int revision; protected String name; protected byte[] bytes; protected String deploymentId; public ByteArrayEntity() { } public ByteArrayEntity(String name, byte[] bytes) { this.name = name; this.bytes = bytes; } public ByteArrayEntity(byte[] bytes) { this.bytes = bytes; } public byte[] getBytes() { return bytes; } public Object getPersistentState() { return (bytes != null ? new ByteArray(bytes) : PERSISTENTSTATE_NULL); } public int getRevisionNext() { return revision+1; } // getters and setters ////////////////////////////////////////////////////// public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public String getDeploymentId() { return deploymentId; } public void setDeploymentId(String deploymentId) { this.deploymentId = deploymentId; } public void setBytes(byte[] bytes) { this.bytes = bytes; } public int getRevision() { return revision; } public void setRevision(int revision) { this.revision = revision; } // Wrapper for a byte array, needed to do byte array comparisons // See http://jira.codehaus.org/browse/ACT-1524 public static class ByteArray { protected byte[] bytes; public ByteArray(byte[] bytes) { this.bytes = bytes; } public boolean equals(Object other) { if (other instanceof ByteArray) { ByteArray otherByteArray = (ByteArray) other; return Arrays.equals(this.bytes, otherByteArray.bytes); } return false; } } }