Class AbstractAzResource<T extends AbstractAzResource<T,P,R>,P extends AbstractAzResource<P,?,?>,R>
- java.lang.Object
-
- com.microsoft.azure.toolkit.lib.common.model.AbstractAzResource<T,P,R>
-
- All Implemented Interfaces:
AzResource<T,P,R>,AzResourceBase,Refreshable
- Direct Known Subclasses:
AbstractAzServiceSubscription,AzResource.None,GenericResource,ResourceDeployment,ResourceGroup
public abstract class AbstractAzResource<T extends AbstractAzResource<T,P,R>,P extends AbstractAzResource<P,?,?>,R> extends Object implements AzResource<T,P,R>
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface com.microsoft.azure.toolkit.lib.common.model.AzResource
AzResource.Draft<T extends AzResource<T,?,R>,R>, AzResource.None, AzResource.Status
-
Nested classes/interfaces inherited from interface com.microsoft.azure.toolkit.lib.common.model.AzResourceBase
AzResourceBase.FormalStatus
-
-
Field Summary
Fields Modifier and Type Field Description private DebouncerfireEventsprivate Locklockprivate AbstractAzResourceModule<T,P,R>moduleprivate Stringnameprivate AtomicReference<R>remoteRefprivate StringresourceGroupNameprivate AtomicReference<String>statusRefprivate AtomicLongsyncTimeRef-
Fields inherited from interface com.microsoft.azure.toolkit.lib.common.model.AzResource
CACHE_LIFETIME, NONE, RESOURCE_GROUP_PLACEHOLDER
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedAbstractAzResource(AbstractAzResource<T,P,R> origin)copy constructorprotectedAbstractAzResource(String name, AbstractAzResourceModule<T,P,R> module)constructor for non-top resource only.protectedAbstractAzResource(String name, String resourceGroupName, AbstractAzResourceModule<T,P,R> module)
-
Method Summary
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.microsoft.azure.toolkit.lib.common.model.AzResource
getFullResourceType, getModule, getName, getParent, getPortalUrl, getResourceGroupName, getResourceTypeName, getSubscription, getSubscriptionId, id, name
-
Methods inherited from interface com.microsoft.azure.toolkit.lib.common.model.AzResourceBase
getFormalStatus
-
-
-
-
Field Detail
-
module
@Nonnull private final AbstractAzResourceModule<T extends AbstractAzResource<T,P,R>,P extends AbstractAzResource<P,?,?>,R> module
-
syncTimeRef
@Nonnull private final AtomicLong syncTimeRef
-
remoteRef
@Nonnull private final AtomicReference<R> remoteRef
-
statusRef
@Nonnull private final AtomicReference<String> statusRef
-
lock
private final Lock lock
-
-
Constructor Detail
-
AbstractAzResource
protected AbstractAzResource(@Nonnull String name, @Nonnull String resourceGroupName, @Nonnull AbstractAzResourceModule<T,P,R> module)
-
AbstractAzResource
protected AbstractAzResource(@Nonnull String name, @Nonnull AbstractAzResourceModule<T,P,R> module)
constructor for non-top resource only.module.getParent().getResourceGroupName()is only reliable if current resource is not root of resource hierarchy tree.
-
AbstractAzResource
protected AbstractAzResource(@Nonnull AbstractAzResource<T,P,R> origin)
copy constructor
-
-
Method Detail
-
exists
public boolean exists()
- Specified by:
existsin interfaceAzResource<T extends AbstractAzResource<T,P,R>,P extends AbstractAzResource<P,?,?>,R>- Specified by:
existsin interfaceAzResourceBase
-
refresh
public void refresh()
- Specified by:
refreshin interfaceAzResource<T extends AbstractAzResource<T,P,R>,P extends AbstractAzResource<P,?,?>,R>- Specified by:
refreshin interfaceRefreshable
-
invalidateCache
public void invalidateCache()
-
getRemoteInner
private R getRemoteInner()
-
reloadRemote
private void reloadRemote()
-
updateAdditionalProperties
protected void updateAdditionalProperties(@Nullable R newRemote, @Nullable R oldRemote)
-
refreshRemote
@Nullable private R refreshRemote(@Nonnull R remote)
- Returns:
- null if resource has been deleted.
-
refreshRemoteFromAzure
@Nullable protected R refreshRemoteFromAzure(@Nonnull R remote)
- Returns:
- null if resource has been deleted.
-
update
@Nonnull public AzResource.Draft<T,R> update()
- Specified by:
updatein interfaceAzResource<T extends AbstractAzResource<T,P,R>,P extends AbstractAzResource<P,?,?>,R>
-
delete
public void delete()
- Specified by:
deletein interfaceAzResource<T extends AbstractAzResource<T,P,R>,P extends AbstractAzResource<P,?,?>,R>
-
deleteFromAzure
private void deleteFromAzure()
-
deleteFromCache
public void deleteFromCache()
-
getStatus
@Nonnull public String getStatus()
- Specified by:
getStatusin interfaceAzResource<T extends AbstractAzResource<T,P,R>,P extends AbstractAzResource<P,?,?>,R>- Specified by:
getStatusin interfaceAzResourceBase
-
fireStatusChangedEvent
private void fireStatusChangedEvent()
-
getId
@Nonnull public String getId()
- Specified by:
getIdin interfaceAzResource<T extends AbstractAzResource<T,P,R>,P extends AbstractAzResource<P,?,?>,R>- Specified by:
getIdin interfaceAzResourceBase
-
getSubModules
@Nonnull public abstract List<AbstractAzResourceModule<?,T,?>> getSubModules()
-
getSubModule
@Nullable public AbstractAzResourceModule<?,T,?> getSubModule(String moduleName)
-
getResourceGroup
@Nullable public ResourceGroup getResourceGroup()
-
isDraft
public boolean isDraft()
-
isDraftForCreating
public boolean isDraftForCreating()
-
isDraftForUpdating
public boolean isDraftForUpdating()
-
-