001 package org.cumulus4j.store.model; 002 003 import java.util.Collection; 004 005 import javax.jdo.JDOObjectNotFoundException; 006 import javax.jdo.PersistenceManager; 007 import javax.jdo.identity.LongIdentity; 008 009 import org.cumulus4j.store.model.FieldMeta.NamedQueries; 010 011 public class FieldMetaDAO extends AbstractDAO { 012 013 public FieldMetaDAO() { } 014 015 public FieldMetaDAO(PersistenceManager pm) { 016 super(pm); 017 } 018 019 public Collection<FieldMeta> getFieldMetasForClassMeta(ClassMeta classMeta) { 020 if (classMeta == null) 021 throw new IllegalArgumentException("classMeta == null"); 022 023 javax.jdo.Query query = pm.newNamedQuery(FieldMeta.class, NamedQueries.getFieldMetasForClassMeta_classID); 024 @SuppressWarnings("unchecked") 025 Collection<FieldMeta> result = (Collection<FieldMeta>) query.execute(classMeta.getClassID()); 026 return result; 027 } 028 029 public Collection<FieldMeta> getSubFieldMetasForFieldMeta(FieldMeta fieldMeta) { 030 if (fieldMeta == null) 031 throw new IllegalArgumentException("fieldMeta == null"); 032 033 javax.jdo.Query query = pm.newNamedQuery(FieldMeta.class, NamedQueries.getSubFieldMetasForFieldMeta_fieldID); 034 @SuppressWarnings("unchecked") 035 Collection<FieldMeta> result = (Collection<FieldMeta>) query.execute(fieldMeta.getFieldID()); 036 return result; 037 } 038 039 public FieldMeta getFieldMeta(long fieldID, boolean throwExceptionIfNotFound) 040 { 041 LongIdentity identity = new LongIdentity(FieldMeta.class, fieldID); 042 try { 043 FieldMeta fieldMeta = (FieldMeta) pm.getObjectById(identity); 044 return fieldMeta; 045 } catch (JDOObjectNotFoundException x) { 046 if (throwExceptionIfNotFound) 047 throw x; 048 else 049 return null; 050 } 051 } 052 053 }