need not tack on reltype
[scpubgit/stemmatology.git] / base / lib / Text / Tradition / Collation / Data.pm
CommitLineData
5c0072ef 1package Text::Tradition::Collation::Data;
2use Moose;
3use Graph;
4
5has 'sequence' => (
6 is => 'ro',
7 isa => 'Graph',
8 default => sub { Graph->new() },
9 handles => {
10 paths => 'edges',
11 },
12 );
13
14has 'relations' => (
15 is => 'ro',
16 isa => 'Text::Tradition::Collation::RelationshipStore',
17 handles => {
18 relationships => 'relationships',
19 related_readings => 'related_readings',
20 get_relationship => 'get_relationship',
21 del_relationship => 'del_relationship',
22 equivalence => 'equivalence',
23 equivalence_graph => 'equivalence_graph',
24 },
25 writer => '_set_relations',
26 );
27
28has 'readings' => (
29 isa => 'HashRef[Text::Tradition::Collation::Reading]',
30 traits => ['Hash'],
31 handles => {
32 reading => 'get',
33 _add_reading => 'set',
34 del_reading => 'delete',
35 has_reading => 'exists',
36# reading_keys => 'keys',
37 readings => 'values',
38 },
39 default => sub { {} },
40 );
41
42has 'wit_list_separator' => (
43 is => 'rw',
44 isa => 'Str',
45 default => ', ',
46 );
47
48has 'baselabel' => (
49 is => 'rw',
50 isa => 'Str',
51 default => 'base text',
52 );
53
54has 'linear' => (
55 is => 'rw',
56 isa => 'Bool',
57 default => 1,
58 );
59
60has 'ac_label' => (
61 is => 'rw',
62 isa => 'Str',
63 default => ' (a.c.)',
64 );
65
66has 'wordsep' => (
67 is => 'rw',
68 isa => 'Str',
69 default => ' ',
70 );
71
72has 'start' => (
73 is => 'ro',
74 isa => 'Text::Tradition::Collation::Reading',
75 writer => '_set_start',
76 weak_ref => 1,
77 );
78
79has 'end' => (
80 is => 'ro',
81 isa => 'Text::Tradition::Collation::Reading',
82 writer => '_set_end',
83 weak_ref => 1,
84 );
85
86has 'cached_table' => (
87 is => 'rw',
88 isa => 'HashRef',
89 predicate => 'has_cached_table',
90 clearer => 'wipe_table',
91 );
92
93has '_graphcalc_done' => (
94 is => 'rw',
95 isa => 'Bool',
96 default => undef,
97 );
98
991;