class StructureImpl implements Structure {

    @Override
    public Field getField(final String fieldName) {
        if (fieldName == null) {
            throw new NullPointerException("Field name cannot be null.");
        }

        if (!hasMember(fieldName)) {
            throw new IllegalArgumentException("No such field: " + fieldName);
        }

        return fieldsMap.get(fieldName.toUpperCase(Locale.getDefault()));
    }

    public  StructureImpl(final Map<String, Field> fields);

}