package com.clouck.model.aws.ec2; import static com.clouck.util.ResourceUtil.notEqual; import static com.clouck.util.ResourceUtil.notEqualCollection; import java.util.ArrayList; import java.util.List; import org.springframework.data.annotation.TypeAlias; import org.springframework.data.mongodb.core.mapping.Document; import com.amazonaws.services.ec2.model.Image; import com.amazonaws.services.ec2.model.LaunchPermission; import com.clouck.model.aws.AbstractResource; @Document(collection = "ec2_ami") @TypeAlias(value = "ec2_ami") @SuppressWarnings("serial") public class Ec2Ami extends AbstractResource<Image> { private List<LaunchPermission> launchPermissions = new ArrayList<>(); @SuppressWarnings("rawtypes") @Override protected boolean isEqual(AbstractResource newResource) { Image oldImage = this.getResource(); Ec2Ami newEc2Ami = (Ec2Ami) newResource; Image newImage = (Image) newEc2Ami.getResource(); if (notEqual(oldImage.getImageId(), newImage.getImageId())) return false; if (notEqual(oldImage.getImageLocation(), newImage.getImageLocation())) return false; if (notEqual(oldImage.getState(), newImage.getState())) return false; if (notEqual(oldImage.getOwnerId(), newImage.getOwnerId())) return false; if (notEqual(oldImage.getPublic(), newImage.getPublic())) return false; if (notEqualCollection(oldImage.getProductCodes(), newImage.getProductCodes())) return false; if (notEqual(oldImage.getArchitecture(), newImage.getArchitecture())) return false; if (notEqual(oldImage.getImageType(), newImage.getImageType())) return false; if (notEqual(oldImage.getKernelId(), newImage.getKernelId())) return false; if (notEqual(oldImage.getRamdiskId(), newImage.getRamdiskId())) return false; if (notEqual(oldImage.getPlatform(), newImage.getPlatform())) return false; if (notEqual(oldImage.getStateReason(), newImage.getStateReason())) return false; if (notEqual(oldImage.getImageOwnerAlias(), newImage.getImageOwnerAlias())) return false; if (notEqual(oldImage.getName(), newImage.getName())) return false; if (notEqual(oldImage.getDescription(), newImage.getDescription())) return false; if (notEqual(oldImage.getRootDeviceType(), newImage.getRootDeviceType())) return false; if (notEqual(oldImage.getRootDeviceName(), newImage.getRootDeviceName())) return false; if (notEqualCollection(oldImage.getBlockDeviceMappings(), newImage.getBlockDeviceMappings())) return false; if (notEqual(oldImage.getVirtualizationType(), newImage.getVirtualizationType())) return false; if (notEqualCollection(oldImage.getTags(), newImage.getTags())) return false; if (notEqual(oldImage.getHypervisor(), newImage.getHypervisor())) return false; if (notEqualCollection(this.launchPermissions, newEc2Ami.getLaunchPermissions())) return false; return true; } public List<LaunchPermission> getLaunchPermissions() { return launchPermissions; } public void setLaunchPermissions(List<LaunchPermission> launchPermissions) { this.launchPermissions = launchPermissions; } }