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 }