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
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, boolean... silent)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, boolean... silent)booleanexists(String name, String resourceGroup)private voidfireChildrenChangedEvent()Tget(String resourceId)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()List<T>listByResourceGroup(String resourceGroup)protected RloadResourceFromAzure(String name, String resourceGroup)protected java.util.stream.Stream<R>loadResourcesFromAzure()protected AzResource.Draft<T,R>newDraftForCreate(String name, String resourceGroup)protected AzResource.Draft<T,R>newDraftForUpdate(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
@Nonnull private final AtomicLong syncTime
-
resources
@Nonnull private final Map<String,Optional<T extends AbstractAzResource<T,P,R>>> resources
-
-
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, @Nullable String resourceGroup)
- 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 resourceGroup)
- Specified by:
existsin interfaceAzResourceModule<T extends AbstractAzResource<T,P,R>,P extends AbstractAzResource<P,?,?>,R>
-
delete
public void delete(@Nonnull String name, @Nullable String resourceGroup)
- 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 resourceGroup)
- 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 resourceGroup)
-
create
@Nonnull public <D extends AzResource.Draft<T,R>> D create(@Nonnull String name, @Nullable String resourceGroup)
-
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>
-
refresh
public void refresh()
- Specified by:
refreshin interfaceAzResourceModule<T extends AbstractAzResource<T,P,R>,P extends AbstractAzResource<P,?,?>,R>- Specified by:
refreshin interfaceRefreshable
-
reload
private void reload()
-
toResourceId
@Nonnull public String toResourceId(@Nonnull String resourceName, @Nullable String resourceGroup)
-
deleteResourceFromLocal
@Nullable T deleteResourceFromLocal(@Nonnull String name, boolean... silent)
-
addResourceToLocal
private void addResourceToLocal(@Nonnull String name, @Nullable T resource, boolean... silent)
-
fireChildrenChangedEvent
private void fireChildrenChangedEvent()
-
loadResourceFromAzure
@Nullable protected R loadResourceFromAzure(@Nonnull String name, @Nullable String resourceGroup)
-
newDraftForCreate
@Nonnull protected AzResource.Draft<T,R> newDraftForCreate(@Nonnull String name, @Nullable String resourceGroup)
-
getClient
@Nullable protected Object getClient()
get track2 client, which is used to implementloadResourcesFromAzure(),loadResourceFromAzure(java.lang.String, java.lang.String)anddeleteResourceFromAzure(java.lang.String)
-
-