/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
/* Name of the class has to be "Main" only if the class is public. */
public class Main
{
public static boolean belongsToAllowedTypes
(Object value
) { if (value == null) {
return true;
} else if (value
instanceof Boolean) { return true;
} else if (value
instanceof String) { return true;
} else if (value
instanceof Number) { return true;
} else if (value instanceof byte[]) {
return true;
} else if (value
instanceof Set) { return containsAllowedTypes(((Set<Object>) value).iterator());
} else if (value
instanceof List) { return containsAllowedTypes(((List<Object>) value).iterator());
} else if (value
instanceof Map) { return containsAllowedTypes
(((Map
<String, Object
>) value
).
values().
iterator()); } else {
return false;
}
}
public static boolean containsAllowedTypes
(Iterator iterator
) { boolean instanceOfAllowedTypes = true;
while (iterator.hasNext() && instanceOfAllowedTypes) {
instanceOfAllowedTypes = belongsToAllowedTypes(iterator.next());
}
return instanceOfAllowedTypes;
}
{
List stringlist
= new ArrayList
<>(); stringlist.add("astring");
System.
out.
println(belongsToAllowedTypes
(stringlist
)); }
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KcHVibGljIGNsYXNzIE1haW4KewoJCglwdWJsaWMgc3RhdGljIGJvb2xlYW4gYmVsb25nc1RvQWxsb3dlZFR5cGVzKE9iamVjdCB2YWx1ZSkgewogICAgaWYgKHZhbHVlID09IG51bGwpIHsKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgIH0gZWxzZSBpZiAodmFsdWUgaW5zdGFuY2VvZiBCb29sZWFuKSB7CiAgICAgICAgcmV0dXJuIHRydWU7CiAgICB9IGVsc2UgaWYgKHZhbHVlIGluc3RhbmNlb2YgU3RyaW5nKSB7CiAgICAgICAgcmV0dXJuIHRydWU7CiAgICB9IGVsc2UgaWYgKHZhbHVlIGluc3RhbmNlb2YgTnVtYmVyKSB7CiAgICAgICAgcmV0dXJuIHRydWU7CiAgICB9IGVsc2UgaWYgKHZhbHVlIGluc3RhbmNlb2YgYnl0ZVtdKSB7CiAgICAgICAgcmV0dXJuIHRydWU7CiAgICB9IGVsc2UgaWYgKHZhbHVlIGluc3RhbmNlb2YgU2V0KSB7CiAgICAgICAgcmV0dXJuIGNvbnRhaW5zQWxsb3dlZFR5cGVzKCgoU2V0PE9iamVjdD4pIHZhbHVlKS5pdGVyYXRvcigpKTsKICAgIH0gZWxzZSBpZiAodmFsdWUgaW5zdGFuY2VvZiBMaXN0KSB7CiAgICAgICAgcmV0dXJuIGNvbnRhaW5zQWxsb3dlZFR5cGVzKCgoTGlzdDxPYmplY3Q+KSB2YWx1ZSkuaXRlcmF0b3IoKSk7CiAgICB9IGVsc2UgaWYgKHZhbHVlIGluc3RhbmNlb2YgTWFwKSB7CiAgICAgICAgcmV0dXJuIGNvbnRhaW5zQWxsb3dlZFR5cGVzKCgoTWFwPFN0cmluZywgT2JqZWN0PikgdmFsdWUpLnZhbHVlcygpLml0ZXJhdG9yKCkpOwogICAgfSBlbHNlIHsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9Cn0KCnB1YmxpYyBzdGF0aWMgYm9vbGVhbiBjb250YWluc0FsbG93ZWRUeXBlcyhJdGVyYXRvciBpdGVyYXRvcikgewogICAgYm9vbGVhbiBpbnN0YW5jZU9mQWxsb3dlZFR5cGVzID0gdHJ1ZTsKICAgIHdoaWxlIChpdGVyYXRvci5oYXNOZXh0KCkgJiYgaW5zdGFuY2VPZkFsbG93ZWRUeXBlcykgewogICAgICAgIGluc3RhbmNlT2ZBbGxvd2VkVHlwZXMgPSBiZWxvbmdzVG9BbGxvd2VkVHlwZXMoaXRlcmF0b3IubmV4dCgpKTsKICAgIH0KICAgIHJldHVybiBpbnN0YW5jZU9mQWxsb3dlZFR5cGVzOwoKfQoKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCUxpc3Qgc3RyaW5nbGlzdCA9IG5ldyBBcnJheUxpc3Q8PigpOwoJCXN0cmluZ2xpc3QuYWRkKCJhc3RyaW5nIik7CgkJU3lzdGVtLm91dC5wcmludGxuKGJlbG9uZ3NUb0FsbG93ZWRUeXBlcyhzdHJpbmdsaXN0KSk7Cgl9Cn0=