Class AbstractAzResourceModule<T extends AbstractAzResource<T,P,R>,P extends AbstractAzResource<P,?,?>,R>
- java.lang.Object
-
- com.microsoft.azure.toolkit.lib.common.model.AbstractAzResourceModule<T,P,R>
-
- All Implemented Interfaces:
AzResourceModule<T,P,R>,Refreshable
- Direct Known Subclasses:
AbstractAzService,AzResourceModule.None,GenericResourceModule,ResourceDeploymentModule,ResourceGroupModule
public abstract class AbstractAzResourceModule<T extends AbstractAzResource<T,P,R>,P extends AbstractAzResource<P,?,?>,R> extends Object implements AzResourceModule<T,P,R>
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface com.microsoft.azure.toolkit.lib.common.model.AzResourceModule
AzResourceModule.None
-
-
Field Summary
Fields Modifier and Type Field Description private DebouncerfireEventsprivate Locklockprivate Stringnameprotected Pparentprivate Map<String,Optional<T>>resourcesprivate AtomicLongsyncTimeRef-
Fields inherited from interface com.microsoft.azure.toolkit.lib.common.model.AzResourceModule
NONE
-
-
Constructor Summary
Constructors Constructor Description AbstractAzResourceModule()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected voidaddResourceToLocal(String id, T resource, boolean... silent)private <D> Dcast(Object origin)voidclear()Tcreate(AzResource.Draft<T,R> draft)<D extends AzResource.Draft<T,R>>
Dcreate(String name, String rgName)voiddelete(String name, String rgName)protected voiddeleteResourceFromAzure(String resourceId)protected voiddeleteResourceFromLocal(String id, boolean... silent)booleanexists(String name, String rgName)private voidfireChildrenChangedEvent()Tget(String resourceId)Tget(String name, String rgName)protected ObjectgetClient()get track2 client, which is used to implementloadResourcesFromAzure(),loadResourceFromAzure(java.lang.String, java.lang.String)anddeleteResourceFromAzure(java.lang.String)TgetOrDraft(String name, String rgName)TgetOrInit(String name, String rgName)(package private) voidinvalidateCache()List<T>list()List<T>listByResourceGroup(String resourceGroup)List<T>listCachedResources()protected RloadResourceFromAzure(String name, String resourceGroup)protected java.util.stream.Stream<R>loadResourcesFromAzure()protected AzResource.Draft<T,R>newDraftForCreate(String name, String rgName)protected AzResource.Draft<T,R>newDraftForUpdate(T t)protected abstract TnewResource(String name, String resourceGroupName)protected abstract TnewResource(R r)private StringnormalizeResourceGroupName(String name, String rgName)voidrefresh()private voidreloadResources()private voidsetResources(Map<String,R> loadedResources)StringtoResourceId(String resourceName, String resourceGroup)Tupdate(AzResource.Draft<T,R> draft)(package private) <D extends AzResource.Draft<T,R>>
Dupdate(T resource)<D extends AzResource.Draft<T,R>>
DupdateOrCreate(String name, String rgName)-
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.AzResourceModule
getFullResourceType, getId, getName, getParent, getResourceTypeName, getSubscriptionId
-
-
-
-
Method Detail
-
refresh
public void refresh()
- Specified by:
refreshin interfaceAzResourceModule<T extends AbstractAzResource<T,P,R>,P extends AbstractAzResource<P,?,?>,R>- Specified by:
refreshin interfaceRefreshable
-
invalidateCache
void invalidateCache()
-
list
@Nonnull public List<T> list()
- Specified by:
listin interfaceAzResourceModule<T extends AbstractAzResource<T,P,R>,P extends AbstractAzResource<P,?,?>,R>
-
reloadResources
private void reloadResources()
-
clear
public void clear()
-
get
@Nullable public T get(@Nonnull String name, @Nullable String rgName)
- Specified by:
getin interfaceAzResourceModule<T extends AbstractAzResource<T,P,R>,P extends AbstractAzResource<P,?,?>,R>
-
get
@Nullable public T get(@Nonnull String resourceId)
- Specified by:
getin interfaceAzResourceModule<T extends AbstractAzResource<T,P,R>,P extends AbstractAzResource<P,?,?>,R>
-
exists
public boolean exists(@Nonnull String name, @Nullable String rgName)
- Specified by:
existsin interfaceAzResourceModule<T extends AbstractAzResource<T,P,R>,P extends AbstractAzResource<P,?,?>,R>
-
delete
public void delete(@Nonnull String name, @Nullable String rgName)
- Specified by:
deletein interfaceAzResourceModule<T extends AbstractAzResource<T,P,R>,P extends AbstractAzResource<P,?,?>,R>
-
getOrDraft
@Nonnull public T getOrDraft(@Nonnull String name, @Nullable String rgName)
- Specified by:
getOrDraftin interfaceAzResourceModule<T extends AbstractAzResource<T,P,R>,P extends AbstractAzResource<P,?,?>,R>
-
updateOrCreate
@Nonnull public <D extends AzResource.Draft<T,R>> D updateOrCreate(@Nonnull String name, @Nullable String rgName)
-
create
@Nonnull public <D extends AzResource.Draft<T,R>> D create(@Nonnull String name, @Nullable String rgName)
-
create
@Nonnull public T create(@Nonnull AzResource.Draft<T,R> draft)
- Specified by:
createin interfaceAzResourceModule<T extends AbstractAzResource<T,P,R>,P extends AbstractAzResource<P,?,?>,R>
-
update
@Nonnull public T update(@Nonnull AzResource.Draft<T,R> draft)
- Specified by:
updatein interfaceAzResourceModule<T extends AbstractAzResource<T,P,R>,P extends AbstractAzResource<P,?,?>,R>
-
toResourceId
@Nonnull public String toResourceId(@Nonnull String resourceName, @Nullable String resourceGroup)
-
deleteResourceFromLocal
protected void deleteResourceFromLocal(@Nonnull String id, boolean... silent)
-
addResourceToLocal
protected void addResourceToLocal(@Nonnull String id, @Nullable T resource, boolean... silent)
-
fireChildrenChangedEvent
private void fireChildrenChangedEvent()
-
loadResourceFromAzure
@Nullable protected R loadResourceFromAzure(@Nonnull String name, @Nullable String resourceGroup)
-
normalizeResourceGroupName
private String normalizeResourceGroupName(String name, @Nullable String rgName)
-
newDraftForCreate
@Nonnull protected AzResource.Draft<T,R> newDraftForCreate(@Nonnull String name, @Nullable String rgName)
-
newResource
@Nonnull protected abstract T newResource(@Nonnull String name, @Nullable String resourceGroupName)
-
getClient
@Nullable protected Object getClient()
get track2 client, which is used to implementloadResourcesFromAzure(),loadResourceFromAzure(java.lang.String, java.lang.String)anddeleteResourceFromAzure(java.lang.String)
-
-