public String[] getPropertyNames(String prefix) {
        String[] propertyNames = getPropertyNames();
        if (propertyNames == null) {
            return null;
        }

        prefix = prefix.toLowerCase();

        List names = new ArrayList();
        for (int i = 0; i < propertyNames.length; i++) {
            if (propertyNames[i].startsWith(prefix)) {
                names.add(propertyNames[i]);
            }
        }

        if (names.size() == 0) {
            return null;
        }

        // Copy the strings from the Vector over to a String array.
        String[] prefixNames = new String[names.size()];

//        int count = 0;
//        for (Iterator it = names.iterator(); it.hasNext(); ) { // todo xx.toArray()
//            prefixNames[count++] = (String)it.next();
//        }
        names.toArray( prefixNames );

        return prefixNames;
    }
Returns an array of <code>String</code>s recognized as names by
this property source that begin with the supplied prefix.  If
no property names match, <code>null</code> will be returned.
The comparison is done in a case-independent manner.

<p> The default implementation calls
<code>getPropertyNames()</code> and searches the list of names
for matches.

@return an array of <code>String</code>s giving the valid
property names (can be null).
plugins/svg-plugin/batik-codec-fix/src/main/java/org/apache/batik/ext/awt/image/codec/util/SimpleRenderedImage.java