class ResourceProfile implements Serializable {

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

	private  ResourceProfile(
			final Resource cpuCores,
			final MemorySize taskHeapMemory,
			final MemorySize taskOffHeapMemory,
			final MemorySize managedMemory,
			final MemorySize networkMemory,
			final Map<String, Resource> extendedResources);
	private  ResourceProfile();

}