---
name: "SQL::Statement::TermFactory"
section: "3pm"
platform: "linux"
package: "libsql-statement-perl"
version: "1.414-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/SQL::Statement::TermFactory"
---

# SQL::Statement::TermFactory(3pm)

Factory for SQL::Statement::Term instances

## NAME

SQL::Statement::TermFactory - Factory for SQL::Statement::Term instances

## SYNOPSIS

```
  my $termFactory = SQL::Statement::TermFactory->new($stmt);
  my $whereTerms = $termFactory->buildCondition( $stmt->{where_clause} );
  my $col = $termFactory->buildCondition( $stmt->{col_obj}->{$name}->{content} );
```

## DESCRIPTION

This package implements a factory to create type and operation based terms. Those terms are used to access data from the table(s) - either when evaluating the where clause or returning column data.

The concept of a factory can be studied in *Design Patterns* by the Gang of Four. The concept of using polymorphism instead of conditions is suggested by Martin Fowler in his book *Refactoring*.

## METHODS

### buildCondition

Builds a condition object from a given (part of a) where clause. This method calls itself recursively for *predicates*.

## AUTHOR AND COPYRIGHT

Copyright (c) 2001,2005 by Jeff Zucker: jzuckerATcpan.org Copyright (c) 2009-2020 by Jens Rehsack: rehsackATcpan.org

All rights reserved.

You may distribute this module under the terms of either the GNU General Public License or the Artistic License, as specified in the Perl README file.
