/*
This file belongs to the Servoy development and deployment environment, Copyright (C) 1997-2010 Servoy BV
This program 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, see http://www.gnu.org/licenses or write to the Free
Software Foundation,Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
*/
package com.servoy.j2db.persistence;
import java.io.Serializable;
import com.servoy.j2db.util.UUID;
/**
* A reference to a specific release of a specific solution.
*
* Either the name or the UUID should be not null if the solution
* was unresolvable; otherwise all fields should be initialized.
* A release number of -1 indicates the active release.
*
* @author sebster
*
*/
public class RootObjectReference implements Serializable
{
private String name;
private UUID uuid;
private RootObjectMetaData metaData;
private int releaseNumber;
public RootObjectReference(RootObjectMetaData metaData, int releaseNumber)
{
this.name = metaData.getName();
this.uuid = metaData.getRootObjectUuid();
this.metaData = metaData;
this.releaseNumber = releaseNumber;
}
public RootObjectReference(String name, UUID uuid, RootObjectMetaData metaData, int releaseNumber)
{
this.name = name;
this.uuid = uuid;
this.metaData = metaData;
this.releaseNumber = releaseNumber;
}
public UUID getUuid()
{
return this.uuid;
}
public String getName()
{
return this.name;
}
public RootObjectMetaData getMetaData()
{
return this.metaData;
}
public int getReleaseNumber()
{
return this.releaseNumber;
}
/**
* @see java.lang.Object#hashCode()
*/
public int hashCode()
{
return uuid.hashCode();
}
public String toString()
{
if (metaData != null)
{
return metaData.getName();
}
if (name != null)
{
return "<" + name + ">";
}
if (uuid != null)
{
return "<" + uuid + ">";
}
return "<invalid solution reference>";
}
}