001 package org.cumulus4j.store.model;
002
003 import javax.jdo.JDOObjectNotFoundException;
004 import javax.jdo.PersistenceManager;
005
006 public class ClassMetaDAO extends AbstractDAO {
007
008 public ClassMetaDAO() { }
009
010 public ClassMetaDAO(PersistenceManager pm) {
011 super(pm);
012 }
013
014 public ClassMeta getClassMeta(String packageName, String simpleClassName, boolean throwExceptionIfNotFound)
015 {
016 javax.jdo.Query q = pm.newNamedQuery(ClassMeta.class, ClassMeta.NamedQueries.getClassMetaByPackageNameAndSimpleClassName);
017 ClassMeta result = (ClassMeta) q.execute(packageName, simpleClassName);
018
019 if (result == null && throwExceptionIfNotFound)
020 throw new JDOObjectNotFoundException(
021 "No ClassMeta found for packageName=\"" + packageName + "\" and simpleClassName=\"" + simpleClassName + "\"!"
022 );
023
024 return result;
025 }
026
027 public ClassMeta getClassMeta(Class<?> clazz, boolean throwExceptionIfNotFound)
028 {
029 String packageName = clazz.getPackage() == null ? "" : clazz.getPackage().getName();
030 String simpleClassName = clazz.getSimpleName();
031 return getClassMeta(packageName, simpleClassName, throwExceptionIfNotFound);
032 }
033 }