summary refs log tree commit diff
path: root/lib/Graph/GEXF/Role/Viz/Shape.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Graph/GEXF/Role/Viz/Shape.pm')
-rw-r--r--lib/Graph/GEXF/Role/Viz/Shape.pm28
1 files changed, 28 insertions, 0 deletions
diff --git a/lib/Graph/GEXF/Role/Viz/Shape.pm b/lib/Graph/GEXF/Role/Viz/Shape.pm
new file mode 100644
index 0000000..f522786
--- /dev/null
+++ b/lib/Graph/GEXF/Role/Viz/Shape.pm
@@ -0,0 +1,28 @@
+package Graph::GEXF::Role::Viz::Shape;
+
+use Moose::Util::TypeConstraints;
+use MooseX::Role::Parameterized;
+
+enum EdgeShape => qw(solid doted dashed double);
+enum NodeShape => qw(disc square triangle diamond);
+
+parameter for => (
+    is       => 'ro',
+    required => 1,
+);
+
+role {
+    my $p = shift;
+
+    my $type = lcfirst( $p->for ) . 'Shape';
+
+    has shape => (
+        is  => 'rw',
+        isa => $type,
+    );
+};
+
+no Moose::Util::TypeConstraints;
+
+1;
+