Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  // Copyright 2008 Google Inc.
  //
  // Licensed under the Apache License, Version 2.0 (the "License");
  // you may not use this file except in compliance with the License.
  // You may obtain a copy of the License at
  //
  // http://www.apache.org/licenses/LICENSE-2.0
  //
  // Unless required by applicable law or agreed to in writing, software
 // distributed under the License is distributed on an "AS IS" BASIS,
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
 package com.google.gwtorm.schema.java;
 
 
 import java.util.List;
 
 
 public class JavaColumnModel extends ColumnModel {
   public static List<FieldgetDeclaredFields(Class<?> in) {
     return sort(Arrays.asList(in.getDeclaredFields()));
   }
 
   static List<Fieldsort(List<Fieldfields) {
     return new Ordering<Field>() {
       @Override
       public int compare(Field f1Field f2) {
         Column a1 = f1.getAnnotation(Column.class);
         Column a2 = f2.getAnnotation(Column.class);
         if (a1 == null && a2 == null) {
           return f1.getName().compareTo(f2.getName());
         }
         if (a1 == null) {
           return 1;
         }
         if (a2 == null) {
           return -1;
         }
         return a1.id() - a2.id();
       }
     }.sortedCopy(fields);
   }
 
   private final Field field;
   private final String fieldName;
   private final Class<?> primitiveType;
   private final Type genericType;
 
   public JavaColumnModel(final Field fthrows OrmException {
      = f;
      = .getName();
      = .getType();
 
 
     if (Modifier.isPrivate(.getModifiers())) {
       throw new OrmException("Field " + .getName() + " of "
           + .getDeclaringClass().getName() + " must not be private");
     }
     if (Modifier.isFinal(.getModifiers())) {
       throw new OrmException("Field " + .getName() + " of "
           + .getDeclaringClass().getName() + " must not be final");
     }
 
      = .getAnnotation(RowVersion.class) != null;
     if ( && .getType() != .) {
       throw new OrmException("Field " + .getName() + " of "
           + .getDeclaringClass().getName() + " must have type 'int'");
     }
 
     initNested();
   }
 
   public JavaColumnModel(Field ffinal String fieldPathfinal int columnId,
       final Class<?> columnTypethrows OrmException {
     this. = f;
     this. = fieldPath;
     this. = fieldPath;
     this. = columnId;
     this. = columnType;
     this. = null;
     initNested();
   }
  private void initNested() throws OrmException {
    if (isNested()) {
      final List<JavaColumnModelcol = new ArrayList<JavaColumnModel>();
      Class<?> in = ;
      while (in != null) {
        for (final Field f : getDeclaredFields(in)) {
          if (f.getAnnotation(Column.class) != null) {
            col.add(new JavaColumnModel(f));
          }
        }
        in = in.getSuperclass();
      }
      initNestedColumns(col);
    }
  }
  public String getFieldName() {
    return ;
  }
  public Class<?> getPrimitiveType() {
    return isPrimitive() ?  : null;
  }
  public Type[] getArgumentTypes() {
    if ( instanceof ParameterizedType) {
      return pt.getActualTypeArguments();
    }
    return new Type[0];
  }
  public String getNestedClassName() {
    return isPrimitive() ? null : .getName();
  }
  public boolean isCollection() {
  }
  public Class<?> getNestedClass() {
    return ;
  }
  public Field getField() {
    return ;
  }
  private boolean isPrimitive() {
    return Util.isSqlPrimitive();
  }
New to GrepCode? Check out our FAQ X