/* (non-Javadoc)
@see nyla.solutions.core.util.Settings#getPropertyStrings(java.lang.Class, java.lang.String, java.lang.String)
357176
@Override
	public String[] getPropertyStrings(Class<?> aClass, String key,
			String aDefault)
	{
		String[] defaultArray = {aDefault};
		
		return getPropertyStrings(aClass, key, defaultArray);
	}
1099799
public static final Set<String> getProperties(Class<?> cls)
    {
        if (cls.isPrimitive() || cls.isAnnotation() || cls.isEnum() || String.class.equals(cls))
        {
            return Collections.EMPTY_SET;
        }
        NavigableSet<String> set = setFor(cls);
        Method[] methods = cls.getMethods();
        for (Method method : methods)
        {
            if ((method.getModifiers() & ModifierMask) == 0)
            {
                String name = method.getName();
                if ((name.startsWith("get") || name.startsWith("is"))
                        && method.getParameterCount() == 0)
                {
                    String property = getProperty(method);
                    Class<?> returnType = method.getReturnType();
                    if (
                            returnType.isArray() ||
                            List.class.isAssignableFrom(returnType)
                            )
                    {
                        set.add(property);
                    }
                    else
                    {
                        if (hasMethod(methods, setter(property)))
                        {
                            set.add(property);
                        }
                    }
                }
            }
        }
        for (Field field : cls.getFields())
        {
            if ((field.getModifiers() & ModifierMask) == 0)
            {
                set.add(field.getName());
            }
        }
        return set;
    }
475445
public Set<String> getProperties() {
		Set<String> allProperties = new HashSet<>();
		for (PropertiesCoreExtension<T, ?, ?, ?> properties : propertiesMap
				.values()) {
			allProperties.addAll(properties.getProperties());
		}
		return allProperties;
	}
1032131
@Override
	public Set<String> stringPropertyNames() {
		lock.readLock().lock();
		try {
			final Set<String> result = new HashSet<String>();
			for (final Object key : getKeyMap(true).keySet()) {
				result.add(getUnprefixedKey((String) key));
			}
			return result;
		} finally {
			lock.readLock().unlock();
		}
	}
211579
@Override
    public Map<String, Object> getProperties()
    {
        if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
            Tr.debug(tc, "getProperties : " + this);
        throw new UnsupportedOperationException("This operation is not supported on a pooling EntityManagerFactory.");
    }
1263796
@SuppressWarnings("unchecked")
    public final <C extends T> PropertyList<C> getProperties(final String name) {
        final PropertyList<C> list = new PropertyList<C>();
        for (final T p : this) {
            if (p.getName().equalsIgnoreCase(name)) {
                list.add((C) p);
            }
        }
        return list;
    }
1009202
public static Collection<String> getPropertyNames(
                    final Class<?> clazz
                    )
    {
        if (clazz == null) {
            throw new IllegalArgumentException( "no class specified" );
        }

        Map<String, PropertyAccessor>  accessors = _getAccessors( clazz );

        return accessors.keySet();
    }
885349
@Override
    public Properties getAllProperties() {
        Properties props = new Properties();
        for (String name : cachedValues.keySet()) {
            props.put(name, String.valueOf(cachedValues.get(name)));
        }
        return props;
    }
803885
public String getStringProperty(String propertyName) {
        Object value = this.properties.get(propertyName);
        if (null != value && value instanceof String) {
            return (String) value;
        }
        return null;
    }
773974
public HashMap<String, String> getProperties() {
        if (this.properties == null) {
            this.properties = new HashMap<String, String>();
        }
        return properties;
    }
371513
public String getString(String propertyName) {
        Object obj = get(propertyName);
        return obj != null ? obj.toString() : null;
    }
148921
@Override
    public final Map<String, String[]> getProperties() {
        final MultivaluedMapPopulator<String, String> populator =
                new MultivaluedMapPopulator<String, String>();
        this.requestPropertiesManager.populateRequestProperties(
                this.servletRequest, portletWindow, populator);
        final Map<String, List<String>> map = populator.getMap();
        return ParameterMap.convertListMap(map);
    }
793074
@Override
	public Set<PropertyKey> getPropertyKeys(final String propertyView) {
		return StructrApp.getConfiguration().getPropertySet(this.getClass(), propertyView);
	}
396136
@Override
    public <T> Collection<T> getPropertyValues(String propertyName, Class<T> type) {
        return Collections.singleton(getProperty(propertyName, type));
    }
1354341
@Override
	public final String getStringProperty(String name) throws JMSException
    {
        return MessageConvertTools.asString(getProperty(name));
    }
399566
protected static String propertiesToString(Properties properties)
    {
        StringWriter stringWriter = new StringWriter();

        String comments = Properties.class.getName();
        try {
            properties.store(stringWriter, comments);
        }
        catch (IOException e) {
            throw new RuntimeException(e);
        }

        stringWriter.flush();
        String result = stringWriter.toString();

        // let's get rid of the timestamp from the properties as it cannot be disabled
        // in the Properties implementation
        List<String> lines = new ArrayList<>(Arrays.asList(result.split("\n")));
        // Remove the second line
        lines.remove(1);
        // join back
        result = StringUtils.join(lines, "\n");

        return result;
    }
331365
public Set<String> getValues(String property) {
		Set<String> allValues = new HashSet<>();
		for (PropertiesCoreExtension<T, ?, ?, ?> properties : propertiesMap
				.values()) {
			allValues.addAll(properties.getValues(property));
		}
		return allValues;
	}