class Command implements Serializable {

	public void validate() {
		Optional.ofNullable(getAction())
			.orElseThrow(()->new InvalidConfigException(String.format(MISSING_COMMAND_ARGUMENTS_MSG, getAbsoluteUri(), "Action")));
		
		if(CollectionUtils.isEmpty(getBehaviors()))
			throw new InvalidConfigException(String.format(MISSING_COMMAND_ARGUMENTS_MSG, getAbsoluteUri(), "Behavior"));
		
		validateCommandArgument(Type.ClientAlias);
		validateCommandArgument(Type.AppAlias);
		validateCommandArgument(Type.PlatformMarker);
		validateCommandArgument(Type.DomainAlias);
	}

	public  Command(String absoluteUri);
	public  Command(Command source);

}