Package org.onosproject.cli
Class AbstractShellCommand
- java.lang.Object
-
- org.onosproject.cli.AbstractShellCommand
-
- All Implemented Interfaces:
org.apache.karaf.shell.api.action.Action,CodecContext
- Direct Known Subclasses:
AddProtectedTransportIntentCommand,AddTestFlowsCommand,AllocationsCommand,AnnotateDeviceCommand,AnnotateHostCommand,AnnotateLinkCommand,AnnotatePortCommand,ApplicationCommand,ApplicationIdListCommand,ApplicationsListCommand,BalanceMastersCommand,BitErrorCommand,ComponentConfigCommand,ConfigureLinkCommand,ConnectivityIntentCommand,CounterCommand,CountersListCommand,DeviceControllersCommand,DeviceDriversCommand,DeviceInterfaceAddCommand,DeviceInterfaceRemoveCommand,DeviceKeyAddCommand,DeviceKeyListCommand,DeviceKeyRemoveCommand,DevicePortsRemoveCommand,DevicePortStateCommand,DevicePortStatsCommand,DeviceRebootCommand,DeviceRemoveCommand,DeviceRoleCommand,DeviceSetControllersCommand,DevicesListCommand,DeviceTimeCommand,DriverProvidersListCommand,DriversListCommand,EdgePortsListCommand,FlowObjectiveCompositionCommand,FlowObjectiveNextListCommand,FlowObjectivePendingNextCommand,FlowObjectiveQueueClearCommand,FlowObjectiveQueueListCommand,FlowsListCommand,GetDomainsCommand,GetFlowStatisticsCommand,GetStatisticsCommand,GroupsListCommand,HostRemoveCommand,HostsListCommand,IntentCycleCommand,IntentDetailsCommand,IntentListCompilers,IntentListInstallers,IntentPurgeCommand,IntentPushTestCommand,IntentRemoveCommand,IntentsDiagnosisCommand,IntentsListCommand,InterfaceAddCommand,InterfaceRemoveCommand,InterfacesListCommand,InternalConnectivityCommand,IssuCommand,LayoutAddCommand,LayoutListCommand,LeaderCommand,LinksListCommand,MapsListCommand,MarkCommand,MastersListCommand,McastDeleteCommand,McastJoinCommand,McastRoutesListCommand,McastShowCommand,MembershipsListCommand,MeterAddCommand,MeterRemoveCommand,MetersListCommand,MetricsListCommand,NeighbourHandlersListCommand,NetworkConfigCommand,NetworkConfigRegistryCommand,NodesListCommand,PacketProcessorsListCommand,PacketRequestsListCommand,PartitionsListCommand,PartitionsSnapshotCommand,PipeconfCommand,PortQueryVlansCommand,PowerConfigCommand,PrettyJson,PrettyXml,QueuesListCommand,RandomIntentCommand,RegionAddCommand,RegionAddDevicesCommand,RegionAddPeerLocCommand,RegionListCommand,RegionRemoveCommand,RegionRemoveDevicesCommand,RegionUpdateCommand,ResourcesCommand,ReviewCommand,RolesCommand,ScrListCommand,StorageNodesListCommand,SummaryCommand,TableStatisticsCommand,TestAllocateResource,TestProtectionEndpointIntentCommand,TopologyCommand,TransactionsCommand,WipeOutCommand
public abstract class AbstractShellCommand extends Object implements org.apache.karaf.shell.api.action.Action, CodecContext
Base abstraction of Karaf shell commands.
-
-
Field Summary
Fields Modifier and Type Field Description protected static org.slf4j.Loggerlog
-
Constructor Summary
Constructors Constructor Description AbstractShellCommand()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description static com.fasterxml.jackson.databind.node.ObjectNodeannotations(com.fasterxml.jackson.databind.ObjectMapper mapper, Annotations annotations)Produces a JSON object from the specified key/value annotations.static Stringannotations(Annotations annotations)Produces a string image of the specified key/value annotations.static Stringannotations(Annotations annotations, Set<String> excludedKeys)Produces a string image of the specified key/value annotations.protected ApplicationIdappId()Returns application ID for the CLI.<T> JsonCodec<T>codec(Class<T> entityClass)Returns the JSON codec for the specified entity class.protected abstract voiddoExecute()Body of the shell command.voiderror(String format, Object... args)Prints the arguments using the specified format to error stream.Objectexecute()static <T> Tget(Class<T> serviceClass)Returns the reference to the implementation of the specified service.<T> TgetService(Class<T> serviceClass)Returns reference to the specified service implementation.<T> com.fasterxml.jackson.databind.node.ObjectNodejsonForEntity(T entity, Class<T> entityClass)Generates a Json representation of an object.com.fasterxml.jackson.databind.ObjectMappermapper()Returns the JSON object mapper.protected booleanoutputJson()Indicates whether JSON format should be output.voidprint(String format, Object... args)Prints the arguments using the specified format.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.onosproject.codec.CodecContext
decode, encode
-
-
-
-
Method Detail
-
get
public static <T> T get(Class<T> serviceClass)
Returns the reference to the implementation of the specified service.- Type Parameters:
T- type of service- Parameters:
serviceClass- service class- Returns:
- service implementation
- Throws:
ServiceNotFoundException- if service is unavailable
-
appId
protected ApplicationId appId()
Returns application ID for the CLI.- Returns:
- command-line application identifier
-
print
public void print(String format, Object... args)
Prints the arguments using the specified format.- Parameters:
format- format string; seeString.format(java.lang.String, java.lang.Object...)args- arguments
-
error
public void error(String format, Object... args)
Prints the arguments using the specified format to error stream.- Parameters:
format- format string; seeString.format(java.lang.String, java.lang.Object...)args- arguments
-
annotations
public static String annotations(Annotations annotations)
Produces a string image of the specified key/value annotations.- Parameters:
annotations- key/value annotations- Returns:
- string image with ", k1=v1, k2=v2, ..." pairs
-
annotations
public static String annotations(Annotations annotations, Set<String> excludedKeys)
Produces a string image of the specified key/value annotations. Excludes the keys in the given Set.- Parameters:
annotations- key/value annotationsexcludedKeys- keys not to add in the resulting string- Returns:
- string image with ", k1=v1, k2=v2, ..." pairs
-
annotations
public static com.fasterxml.jackson.databind.node.ObjectNode annotations(com.fasterxml.jackson.databind.ObjectMapper mapper, Annotations annotations)Produces a JSON object from the specified key/value annotations.- Parameters:
mapper- ObjectMapper to use while converting to JSONannotations- key/value annotations- Returns:
- JSON object
-
outputJson
protected boolean outputJson()
Indicates whether JSON format should be output.- Returns:
- true if JSON is requested
-
execute
public final Object execute() throws Exception
- Specified by:
executein interfaceorg.apache.karaf.shell.api.action.Action- Throws:
Exception
-
doExecute
protected abstract void doExecute() throws ExceptionBody of the shell command.- Throws:
Exception- thrown when problem is encountered
-
mapper
public com.fasterxml.jackson.databind.ObjectMapper mapper()
Description copied from interface:CodecContextReturns the JSON object mapper.- Specified by:
mapperin interfaceCodecContext- Returns:
- object mapper
-
codec
public <T> JsonCodec<T> codec(Class<T> entityClass)
Description copied from interface:CodecContextReturns the JSON codec for the specified entity class.- Specified by:
codecin interfaceCodecContext- Type Parameters:
T- entity type- Parameters:
entityClass- entity class- Returns:
- JSON codec; null if no codec available for the class
-
getService
public <T> T getService(Class<T> serviceClass)
Description copied from interface:CodecContextReturns reference to the specified service implementation.- Specified by:
getServicein interfaceCodecContext- Type Parameters:
T- service type- Parameters:
serviceClass- service class- Returns:
- service implementation; null if no implementation available for the class
-
jsonForEntity
public <T> com.fasterxml.jackson.databind.node.ObjectNode jsonForEntity(T entity, Class<T> entityClass)Generates a Json representation of an object.- Type Parameters:
T- Type of the object being formatted- Parameters:
entity- object to generate JSON forentityClass- class to format with - this chooses which codec to use- Returns:
- JSON object representation
-
-