1 package org.paneris.bibliomania; 2 3 import org.melati.poem.Database; 4 import org.melati.poem.DefinitionSource; 5 import org.melati.poem.Persistent; 6 import org.melati.poem.PoemException; 7 import org.melati.poem.Table; 8 import org.paneris.bibliomania.generated.SectionTableBase; 9 10 public class SectionTable<T extends Section> extends SectionTableBase<Section> { 11 12 public SectionTable( 13 Database database, String name, 14 DefinitionSource definitionSource) throws PoemException { 15 super(database, name, definitionSource); 16 } 17 18 19 public Integer troidFor(Persistent persistent) { 20 int it = troidColumn().firstFree(null); 21 if (it >= Chapter.ftiTextID_section_limit) 22 throw new TooManySectionsException(this, it, Chapter.ftiTextID_section_limit); 23 return new Integer(it); 24 } 25 26 public Unit unitWithPath(String path) { 27 return (Section)getPathColumn().firstWhereEq(path); 28 } 29 30 public Section ensure(String name, SectionGroup sectionGroup) { 31 Section p = (Section)getDisplaynameColumn().firstWhereEq(name); 32 if (p == null) { 33 p = (Section)newPersistent(); 34 p.setDisplayname(name); 35 p.setGroup(sectionGroup); 36 p.setPath(name); 37 p.setDeleted(false); 38 } 39 return (Section)getDisplaynameColumn().ensure(p); 40 41 } 42 }