}
private <T extends Element> void createInternalIndexKey(final String key, final Class<T> elementClass) {
final String propertyName = elementClass.getSimpleName() + INDEXED_KEYS_POSTFIX;
if (rawGraph instanceof GraphDatabaseAPI) {
final PropertyContainer pc = ((GraphDatabaseAPI) this.rawGraph).getNodeManager().getGraphProperties();
try {
final String[] keys = (String[]) pc.getProperty(propertyName);
final Set<String> temp = new HashSet<String>(Arrays.asList(keys));
temp.add(key);
pc.setProperty(propertyName, temp.toArray(new String[temp.size()]));
} catch (Exception e) {
// no indexed_keys kernel data property
pc.setProperty(propertyName, new String[]{key});
}
} else {
throw new UnsupportedOperationException(
"Unable to create an index on a non-GraphDatabaseAPI graph");