/** can be overridden to supply a simpler base name than the class name */ protected String toStringBaseName() { return JavaClassNames.simpleClassName(this); } /** can be overridden to supply add'l info for the {@link #toString()}; subclasses can add to the returned value */
@Override public String toString() { return JavaClassNames.simpleClassName(this)+":"+delegate.toString(); } }
@Override public String toString() { return JavaClassNames.simpleClassName(getClass())+"["+user+"@"+sourceIp+":"+requestUniqueIdentifier+"]"; } }
@Override protected String toStringPollSource() { if (callable==null) return null; String cs = callable.toString(); if (!cs.contains( ""+Integer.toHexString(callable.hashCode()) )) { return cs; } // if hashcode is in callable it's probably a custom internal; return class name return JavaClassNames.simpleClassName(callable); }
/** as {@link #simpleClassName(Class)} but returning json types if appropriate, * e.g. `map`, `string`, etc; else falling back to detailed type */ public static String superSimpleClassName(Class<?> t) { if (Map.class.isAssignableFrom(t)) return "map"; if (Iterable.class.isAssignableFrom(t) || Iterator.class.isAssignableFrom(t) || t.isArray()) return "list"; if (CharSequence.class.isAssignableFrom(t)) return "string"; if (Number.class.isAssignableFrom(t)) return "number"; if (Boolean.class.isAssignableFrom(t)) return "boolean"; return simpleClassName(t); }
/** as {@link #simpleClassName(Object)} but making the result clean for use on filesystems and as java identifiers */ public static String cleanSimpleClassName(Class<?> x) { return Strings.makeValidFilename(simpleClassName(x)); }
@Override public String toString() { return JavaClassNames.simpleClassName(this)+"["+getAllConfigRaw()+"]"; }
/** as {@link #simpleClassName(Class)} but taking the type of the object if it is not already a class * or a type-token; callers should usually do the getClass themselves, unless they aren't sure whether * it is already a Class-type object */ public static String simpleClassName(Object x) { return simpleClassName(type(x)); }
@Override public List<Location> getListOfLocationsManaged(Object l) { if (l==null) l = Collections.emptyList(); if (l instanceof String) l = JavaStringEscapes.unwrapJsonishListIfPossible((String)l); if (l instanceof Iterable) return getFromIterableListOfLocationsManaged((Iterable<?>)l); throw new IllegalArgumentException("Location list must be supplied as a collection or a string, not "+ JavaClassNames.simpleClassName(l)+"/"+l); }
@SuppressWarnings("unchecked") public static Map<String,Object> asMap(ConfigBag parameters, ConfigKey<?> key) { Object v = parameters.getStringKey(key.getName()); if (v==null || (v instanceof String && Strings.isBlank((String)v))) return null; if (v instanceof Map) return (Map<String, Object>) v; if (v instanceof String) { // TODO ideally, parse YAML return new Gson().fromJson((String)v, Map.class); } throw new IllegalArgumentException("Invalid "+JavaClassNames.simpleClassName(v)+" value for "+key+": "+v); }
/** * @deprecated since 0.12.0; use {@link EnricherSpec} */ @Deprecated public TimeWeightedDeltaEnricher(Entity producer, Sensor<T> source, Sensor<Double> target, int unitMillis, Function<Double,Double> postProcessor) { super(producer, source, target); this.unitMillis = unitMillis; this.postProcessor = postProcessor; if (source!=null && target!=null) this.uniqueTag = JavaClassNames.simpleClassName(getClass())+":"+source.getName()+"/"+Duration.millis(unitMillis)+"->"+target.getName(); }
@Override public String toString() { return JavaClassNames.simpleClassName(this)+"["+(isPresent()?"value="+get():"")+"]"; }
@Override public void setEntity(EntityLocal entity) { super.setEntity(entity); Group group = getGroup(); if (group != null) { if (uniqueTag==null) { uniqueTag = JavaClassNames.simpleClassName(this)+":"+group; } subscribeToGroup(group); } else { LOG.warn("Deprecated use of "+AbstractMembershipTrackingPolicy.class.getSimpleName()+"; group should be set as config"); } }
/** as {@link #checkAllEnumeratedIgnoreCase(String, Enum[], String...)} using the same default strategy * that {@link #valueOfIgnoreCase(Class, String)} applies */ public static void checkAllEnumeratedIgnoreCase(Class<? extends Enum<?>> type, String ...explicitValues) { checkAllEnumeratedIgnoreCase(JavaClassNames.simpleClassName(type), values(type), explicitValues); } /** checks that all accepted enum values are represented by the given set of explicit values */
/** as {@link #valueOfIgnoreCase(String, Enum[], String)} for all values of the given enum and using the enum type as the message */ public static <T extends Enum<?>> Maybe<T> valueOfIgnoreCase(Class<T> type, String givenValue) { return valueOfIgnoreCase(JavaClassNames.simpleClassName(type), values(type), givenValue); }
@Override public void init() { super.init(); if (uniqueTag == null && source != null && target != null) { uniqueTag = JavaClassNames.simpleClassName(getClass())+":"+source.getName()+"->"+target.getName(); } }
@Override public void init() { super.init(); if (uniqueTag == null && source != null && target != null) { uniqueTag = JavaClassNames.simpleClassName(getClass())+":"+source.getName()+"/"+timePeriod+"->"+target.getName(); } }
@Override public void init() { super.init(); if (uniqueTag == null && source != null && target != null) { uniqueTag = JavaClassNames.simpleClassName(getClass())+":"+source.getName()+"/"+Duration.millis(unitMillis)+"->"+target.getName(); } }
@Override public void setEntity(EntityLocal entity) { super.setEntity(entity); Object target = config().get(SUSPEND_TARGET); Preconditions.checkNotNull(target, "Suspend target required"); Preconditions.checkNotNull(getTargetPolicy(), "Can't find target policy set in " + SUSPEND_TARGET.getName() + ": " + target); subscribe(); uniqueTag = JavaClassNames.simpleClassName(getClass())+":"+getConfig(SUSPEND_SENSOR).getName()+":"+getConfig(RESUME_SENSOR).getName(); }
@Override public String toString() { return JavaClassNames.simpleClassName(this)+"["+getId()+ (isDisabled() ? ";DISABLED" : "")+ (isDeprecated() ? ";deprecated" : "")+ (getPlan()!=null ? ";"+getPlan().getPlanFormat() : "")+ "]"; }