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>
- Direct Known Subclasses:
AbstractAzService,AzResourceModule.None
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 Stringnameprotected Pparentprivate Map<String,Optional<T>>resourcesprivate AtomicLongsyncTime-
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 private voidaddResourceToLocal(String name, T resource)private <D> Dcast(Object origin)voidclear()Tcreate(AzResource.Draft<T,R> draft)<D extends AzResource.Draft<T,R>>
Dcreate(String name, String resourceGroup)voiddelete(String name, String resourceGroup)protected voiddeleteResourceFromAzure(String resourceId)(package private) TdeleteResourceFromLocal(String name)booleanexists(String name, String resourceGroup)private voidfireResourcesChangedEvent()Tget(String name, String resourceGroup)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 resourceGroup)List<T>list()protected RloadResourceFromAzure(String name, String resourceGroup)protected java.util.stream.Stream<R>loadResourcesFromAzure()protected <D extends T>
DnewDraftForCreate(String name, String resourceGroup)protected <D extends T>
DnewDraftForUpdate(T t)protected abstract TnewResource(R r)voidrefresh()private voidreload()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 resourceGroup)-
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
-
-
-
-
Field Detail
-
parent
@Nonnull protected final P extends AbstractAzResource<P,?,?> parent
-
syncTime
private final AtomicLong syncTime
-
fireEvents
private final Debouncer fireEvents
-
-
Method Detail
-
list
@Nonnull public List<T> list()
- Specified by:
listin interfaceAzResourceModule<T extends AbstractAzResource<T,P,R>,P extends AbstractAzResource<P,?,?>,R>
-
clear
public void clear()
-
get
@Nullable public T get(@Nullable String name, String resourceGroup)
- Specified by:
getin interfaceAzResourceModule<T extends AbstractAzResource<T,P,R>,P extends AbstractAzResource<P,?,?>,R>
-
exists
public boolean exists(@Nonnull String name, String resourceGroup)
- Specified by:
existsin interfaceAzResourceModule<T extends AbstractAzResource<T,P,R>,P extends AbstractAzResource<P,?,?>,R>
-
delete
public void delete(@Nonnull String name, String resourceGroup)
- Specified by:
deletein interfaceAzResourceModule<T extends AbstractAzResource<T,P,R>,P extends AbstractAzResource<P,?,?>,R>
-
updateOrCreate
public <D extends AzResource.Draft<T,R>> D updateOrCreate(String name, String resourceGroup)
-
create
@Nonnull public <D extends AzResource.Draft<T,R>> D create(@Nonnull String name, String resourceGroup)
-
create
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
public T update(@Nonnull AzResource.Draft<T,R> draft)
- Specified by:
updatein interfaceAzResourceModule<T extends AbstractAzResource<T,P,R>,P extends AbstractAzResource<P,?,?>,R>
-
refresh
public void refresh()
- Specified by:
refreshin interfaceAzResourceModule<T extends AbstractAzResource<T,P,R>,P extends AbstractAzResource<P,?,?>,R>
-
reload
private void reload()
-
toResourceId
@Nonnull public String toResourceId(@Nonnull String resourceName, String resourceGroup)
-
fireResourcesChangedEvent
private void fireResourcesChangedEvent()
-
loadResourceFromAzure
@Nullable protected R loadResourceFromAzure(@Nonnull String name, String resourceGroup)
-
newDraftForCreate
protected <D extends T> D newDraftForCreate(@Nonnull String name, String resourceGroup)
- Type Parameters:
D- type of draft, it must extendAbstractAzResourceModuleand implementAzResource.Draft
-
newDraftForUpdate
protected <D extends T> D newDraftForUpdate(@Nonnull T t)
- Type Parameters:
D- type of draft, it must extendAbstractAzResourceModuleand implementAzResource.Draft
-
getClient
protected Object getClient()
get track2 client, which is used to implementloadResourcesFromAzure(),loadResourceFromAzure(java.lang.String, java.lang.String)anddeleteResourceFromAzure(java.lang.String)
-
-