Linux SoftwareProgrammingLibrariesTangram::Type::Extending 2.10

Tangram::Type::Extending 2.10


Tangram::Type::Extending is a Perl module for teaching Tangram about new types. Tangram::Type is the root of a hierarchy of classe
Developer:   Tangram::Type::Extending Team
      more software by author →
Price:  0.00
License:   Perl Artistic License
File size:   154K
Language:   
OS:   
Rating:   0 /5 (0 votes)
Your vote:  
enlarge screenshot


Tangram::Type::Extending is a Perl module for teaching Tangram about new types.

Tangram::Type is the root of a hierarchy of classes that are responsible mapping individual field to SQL entities (columns in the simplest cases). There is one Type object per persistent field.
Adding support for new types amounts to adding subclasses to Tangram::Type.

WRITING NEW TYPES

Tangram is organized in several subsystems, described below.

Schema is the repository for information about all the persistent aspects of a system: classes, inheritance relationships, fields, etc. It also contains graph-traversal algorithms, which are not currently documented.

Storage deals with objects as a whole: insertion, updating, multiple load detection, cycle handling, transactions, connections. It also serves as an entry point in the system. Storage does not manipulate fields directly.

Cursor deals with polymorphic retrieval of objects. It builds SELECT statements on the basis of the information in the hash. Cursor does not manipulate fields directly either.

The Type hierarchy deals with individual fields, and not with entire objects. More about it in a moment.

The Expr hierarchy deals with entities on the remote side; this includes expressions proper, Filters and Remotes.

Types are responsible for performing the mapping between a field of a given Perl type and a relational entity. The simplest Types merely transfer between one Perl field and one column. Sometimes it makes sense to have several mappings (and hence several Types) for the same Perl type; for example, Perl arrays can be mapped either using a link table, or one or several columns that live on the element's table.

Users don't deal with Type objects directly: they indicate that a series of fields should be mapped in a certain way by putting the fields under a given 'typetag' in the field hash. The type registers itself with Tangram by adding a typetag in the %Tangram::Schema::TYPES hash. The value is the Type object. Up to now all Types have been singletons, but this is not a rule.

Anybody who's planning to write new Types should examine Scalar.pm first. It contains very simple mappings between one field and one column.

A Type must implement the methods described below. Keep the following facts in mind while reading further:

1. A Type is responsible for transfering all the *direct* fields for a given *class*. This excludes inherited fields. OTOH, the same Type can be called more than once for the same object, because the same Type may be used in several classes that appear in a particular object's inheritance graph.

Requirements:
  • Perl
    tags deals with  new types  the same  tangram type  the type  between one  responsible for  perl type  and one  hash the  same type  for the  one column  

    Download Tangram::Type::Extending 2.10


     http://mirrors.evolva.ro/CPAN/authors/id/S/SA/SAMV/Tangram-2.10.tar.gz


    Authors software

    Tangram::Type::Extending 2.10 (by Tangram::Type::Extending Team)
    Tangram::Type::Extending is a Perl module for teaching Tangram about new types.

    Tangram::Type is the root of a hierarchy of classe


    Similar software

    Tangram::Type::Extending 2.10 (by Tangram::Type::Extending Team)
    Tangram::Type::Extending is a Perl module for teaching Tangram about new types.

    Tangram::Type is the root of a hierarchy of classe

    Class::Tangram 1.57 (by Sam Vilain)
    Class::Tangram is a Perl module for tangram-friendly classes, DWIM attributes.

    SYNOPSIS

    package MyObject;

    use base qw(Clas

    Myco::Entity 1.22 (by Charles Owens)
    Myco::Entity is a common base class for all Myco entity classes.

    SYNOPSIS

    ### Entity class definition

    package Myco::Foo;

    XML::Schema::Type::Simple 0.07 (by Andy Wardley)

    Class::Meta::Type 0.53 (by David Wheeler)
    Class::Meta::Type is a Perl module for data type validation and accessor building.

    SYNOPSIS

    package MyApp::TypeDef;

    use

    Rose::HTML::Form 0.53 (by John C. Siracusa)
    Rose::HTML::Form is a HTML form base class.

    SYNOPSIS

    package PersonForm;

    use Rose::HTML::Form;
    our @ISA = qw(Rose::HT

    Class::Date 1.1.9 (by Szabo Balazs)
    Class::Date is a perl module, which provides a simple date type for perl.

    You can create new Class::Date objects with a constructo

    Mail::Field 1.74 (by Mark Overmeer)
    Mail::Field is a base class for manipulation of mail header fields.

    SYNOPSIS

    use Mail::Field;

    $field = Mail::Fie

    Hachoir 0.7.0 (by Victor Stinner)
    Hachoir project is a Python library which can display a stream of binary data on a field per field basis

    Gentle.NET 1.2.9 (by Morten Mertner)
    Gentle.NET is an RDBMS independent object persistence framework


    Other software in this category

    zlib 1.2.3 (by Jean-loup Gailly)
    zlib is designed to be a free, general-purpose, legally unencumbered, lossless data-compression library for use on virtually any comp

    libjpeg v6b (by Independent JPEG Group)
    libjpeg is a library for handling the JPEG (JFIF) image format

    OpenSSL 0.9.7c (by The OpenSSL Project Team)
    The OpenSSL Project is a collaborative effort to develop a robust, commercial-grade, full-featured, and Open Source toolkit implement

    libxml2 2.6.27 (by DV)
    Libxml2 is the XML C parser and toolkit developed for the Gnome project (but usable outside of the Gnome platform), libxml2 library i

    GNU C library 2.4 (by Andreas Jaeger)
    GNU C library (glibc) is one of the most important components of GNU Hurd and most modern Linux distributions.

    GNU C library is us

  •     search


    Featured Software

    jEdit 4.3 pre8
    jEdit is an Open Source text editor written in Java

    Opera 9.02
    Surf the Internet in a safer, faster, and easier way with Opera browser

    GNU Aspell 0.60.4
    GNU Aspell is a Free and Open Source spell checker designed to eventually replace Ispell


    Subscribe in Rojo
    Google Reader
    Add to My Yahoo!

    Add to My AOL
    Subscribe with Bloglines
    Subscribe in NewsGator Online
    Add 'nixbit linux software' to Newsburst from CNET News.com
    del.icio.us nixbit linux software


    Top tags