class ResourceProfile implements Serializable, Comparable<ResourceProfile> {

	@Override
	public boolean equals(Object obj) {
		if (obj == this) {
			return true;
		}
		else if (obj != null && obj.getClass() == ResourceProfile.class) {
			ResourceProfile that = (ResourceProfile) obj;
			return this.cpuCores == that.cpuCores &&
					this.heapMemoryInMB == that.heapMemoryInMB &&
					this.directMemoryInMB == that.directMemoryInMB &&
					this.networkMemoryInMB == that.networkMemoryInMB &&
					Objects.equals(extendedResources, that.extendedResources);
		}
		return false;
	}

	public  ResourceProfile(
			double cpuCores,
			int heapMemoryInMB,
			int directMemoryInMB,
			int nativeMemoryInMB,
			int networkMemoryInMB,
			Map<String, Resource> extendedResources);
	public  ResourceProfile(double cpuCores, int heapMemoryInMB);
	public  ResourceProfile(ResourceProfile other);

}