Open Source Repository

Home /jodd/jodd-3.3.2 | Repository Home



jodd/introspector/Fields.java
// Copyright (c) 2003-2012, Jodd Team (jodd.org). All Rights Reserved.

package jodd.introspector;

import java.lang.reflect.Field;
import java.util.HashMap;

/**
 * Fields map collection.
 */
class Fields {

  HashMap<String, Field> fMap = new HashMap<String, Field>();
  Field[] allFields;
  boolean locked;

  void addField(String name, Field field) {
    if (locked == true) {
      throw new IllegalStateException("Fields introspection is already finished.");
    }
    fMap.put(name, field);
  }

  void lock() {
    locked = true;
    allFields = new Field[fMap.size()];
    int count = 0;
    for (Field field : fMap.values()) {
      allFields[count= field;
      count++;
    }
  }

  // ---------------------------------------------------------------- get

  Field getField(String name) {
    return fMap.get(name);
  }

  int getCount() {
    return allFields.length;
  }

  Field[] getAllFields() {
    return allFields;
  }

}