
jadex.bridge.ResourceIdentifier Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jadex-bridge Show documentation
Show all versions of jadex-bridge Show documentation
Jadex bridge is a base package for kernels and platforms,
i.e. it is used by both and provides commonly used
interfaces and classes for active components and
their management.
The newest version!
package jadex.bridge;
import jadex.bridge.service.annotation.Reference;
import jadex.commons.SUtil;
/**
* Default implementation for resource identification.
* Contains only a local identifier and a global identifier
* that can be used to find the resource.
*/
@Reference(local=true, remote=false)
public class ResourceIdentifier implements IResourceIdentifier
{
//-------- attributes --------
/** The local identifier. */
protected ILocalResourceIdentifier lid;
/** The global identifier. */
protected IGlobalResourceIdentifier gid;
//-------- constructors --------
/**
* Create a resource identifier.
*/
public ResourceIdentifier()
{
// bean constructor
}
/**
* Create a resource identifier.
* @param lid The local identifier.
* @param gid The global idenfifier.
*/
public ResourceIdentifier(ILocalResourceIdentifier lid, IGlobalResourceIdentifier gid)
{
// if(lid.getUrl()!=null && lid.getUrl().toString().indexOf("jar:")!=-1)
// System.out.println("hjere");
this.lid = lid;
this.gid = gid;
}
//-------- methods --------
/**
* Get the local identifier.
* The local identifier consists of the platform
* component identifier and the URL of the resource.
* @return The local identifier.
*/
public ILocalResourceIdentifier getLocalIdentifier()
{
return lid;
}
/**
* Get the global identifier.
* @return The global identifier.
*/
public IGlobalResourceIdentifier getGlobalIdentifier()
{
return gid;
}
/**
* Set the local identifier.
* @param lid The lid to set.
*/
public void setLocalIdentifier(ILocalResourceIdentifier lid)
{
this.lid = lid;
}
/**
* Set the global identifier.
* @param gid The gid to set.
*/
public void setGlobalIdentifier(IGlobalResourceIdentifier gid)
{
this.gid = gid;
}
/**
* Get the hashcode.
*/
public int hashCode()
{
final int prime = 31;
int result = 1;
result = prime * result + (gid!=null? gid.hashCode(): lid.hashCode());
return result;
}
/**
* Test if equals.
* They are equal when
* a) global ids are equal
* b) or global ids are null and local ids are equal.
*/
public boolean equals(Object obj)
{
boolean ret = false;
if(obj instanceof IResourceIdentifier)
{
IResourceIdentifier other = (IResourceIdentifier)obj;
ret = (getGlobalIdentifier()!=null && getGlobalIdentifier().equals(other.getGlobalIdentifier()))
|| (getGlobalIdentifier()==null && other.getGlobalIdentifier()==null && SUtil.equals(getLocalIdentifier(), other.getLocalIdentifier()));
}
return ret;
}
/**
*
*/
public static IResourceIdentifier getLocalResourceIdentifier(IResourceIdentifier rid)
{
IResourceIdentifier ret = null;
if(rid!=null && rid.getGlobalIdentifier()!=null && rid.getLocalIdentifier()!=null)
{
ret = new ResourceIdentifier(rid.getLocalIdentifier(), null);
}
return ret;
}
/**
* Get a string representation of this object.
*/
public String toString()
{
// return "ResourceIdentifier(globalid="+gid==null? "n/a": gid+", localid"+(lid!=null?lid.toString(): "n/a")+")";
return "global="+(gid==null? "n/a": gid)+", local="+(lid!=null? lid.toString(): "n/a");
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy