#
# Copyright (c) 2005-2006 IBM Corporation.
#
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html
#
# File: $Source: /var/lib/cvs/ODO/lib/ODO/Ontology/OWL/Lite/ObjectWriter.pm,v $
# Created by: Stephen Evanchik( <a href="mailto:evanchik@us.ibm.com">evanchik@us.ibm.com </a>)
# Created on: 05/04/2005
# Revision: $Id: ObjectWriter.pm,v 1.2 2009-11-25 17:58:26 ubuntu Exp $
#
# Contributors:
# IBM Corporation - initial API and implementation
#
package ODO::Ontology::OWL::Lite::ObjectWriter;
package ODO::Ontology::OWL::Lite::ObjectWriter::Package;
use base qw/ODO::Ontology::ObjectWriter::Package/;
use vars qw /$VERSION/;
$VERSION = sprintf "%d.%02d", q$Revision: 1.2 $ =~ /: (\d+)\.(\d+)/;
package ODO::Ontology::OWL::Lite::ObjectWriter::PropertyInitializer;
use base qw/ODO::Ontology::ObjectWriter/;
our @METHODS = qw/shortName packageName/;
__PACKAGE__->mk_accessors(@METHODS);
=item serialize( )
=cut
sub serialize {
my $self = shift;
my $property_initializer = {
shortName=> $self->shortName(),
packageName=> $self->packageName(),
};
return $self->SUPER::serialize(template_data=> $property_initializer);
}
sub init {
my ($self, $config) = @_;
$self = $self->SUPER::init($config);
$self->template_filename('ODO/Ontology/OWL/Lite/Templates/OWLLitePropertyInitializer.tt');
return $self;
}
package ODO::Ontology::OWL::Lite::ObjectWriter::PropertyContainer;
use base qw/ODO::Ontology::ObjectWriter::PropertiesContainer/;
package ODO::Ontology::OWL::Lite::ObjectWriter::AccessorMethod;
use base qw/ODO::Ontology::ObjectWriter::AccessorMethod/;
sub init {
my ($self, $config) = @_;
$self = $self->SUPER::init($config);
$self->template_filename('ODO/Ontology/OWL/Lite/Templates/OWLLitePropertyAccessorMethod.tt');
return $self;
}
package ODO::Ontology::OWL::Lite::ObjectWriter::Constructor;
use strict;
use warnings;
use ODO::Exception;
use base qw/ODO::Ontology::ObjectWriter/;
our @METHODS = qw/URI description schemaURI propertyContainerName properties queryString queryObject cardinalityRestrictions classIntersections restrictedIntersections/;
__PACKAGE__->mk_accessors(@METHODS);
sub serializePropertyInitializers {
my $self = shift;
my @initializerMethods;
foreach my $p (@{ $self->properties() }) {
push @initializerMethods, ODO::Ontology::OWL::Lite::ObjectWriter::PropertyInitializer->new(%{ $p })->serialize();
}
return \@initializerMethods;
}
=item serialize( )
=cut
sub serialize {
my $self = shift;
my $cons_data = {
URI=> $self->URI(),
description=> $self->description(),
schemaURI=> $self->schemaURI(),
queryString=> $self->queryString(),
propertyInitializers=> $self->properties(),
propertyContainerName=> $self->propertyContainerName(),
properties=> $self->properties(),
cardinalityRestrictions=> $self->cardinalityRestrictions(),
classIntersections=> $self->classIntersections(),
};
return $self->SUPER::serialize(template_data=> $cons_data);
}
sub init {
my ($self, $config) = @_;
$self = $self->SUPER::init($config);
$self->params($config, @METHODS);
$self->template_filename('ODO/Ontology/OWL/Lite/Templates/OWLLiteConstructor.tt');
return $self;
}
1;
__END__