Java tutorial
/* * Copyright (c) 2005 Chris Richardson * * 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 net.chrisrichardson.ormunit.hibernate; import java.lang.reflect.*; import java.util.*; import java.util.Set; import junit.framework.*; import org.hibernate.mapping.*; public class HibernateAssertUtil { public static void assertColumn(String idColumn, Value identifier) { Iterator columnIt = identifier.getColumnIterator(); Assert.assertTrue(columnIt.hasNext()); Column column = (Column) columnIt.next(); Assert.assertFalse(columnIt.hasNext()); if (!idColumn.equalsIgnoreCase(column.getName())) Assert.assertEquals(idColumn, column.getName()); } public static void assertPropertyColumn(String idColumn, Property idProperty) { Value identifier = idProperty.getValue(); assertColumn(idColumn, identifier); } public static Set getPersistableFields(Class type, boolean includeSuper) { Set persistableFields = new HashSet(); while (type != Object.class) { Field[] fields = type.getDeclaredFields(); for (int i = 0; i < fields.length; i++) { Field field = fields[i]; String fieldName = field.getName(); if (isPersistableField(field)) { persistableFields.add(field.getName()); } } if (!includeSuper) break; type = type.getSuperclass(); } return persistableFields; } public static boolean isPersistableField(Field field) { return (field.getModifiers() & (Modifier.FINAL | Modifier.STATIC)) == 0; } public static void assertFieldAccess(Property property) { Assert.assertEquals("field", property.getPropertyAccessorName()); } }