The "Class::Adapter" class is intended as an abstract base class for creating any sort of class or object
that follows the Adapter pattern.
WhatisanAdapter?
The term Adapter refers to a "DesignPattern" of the same name, from the famous "GangofFour" book
"DesignPatterns". Although their original implementation was designed for Java and similar single-
inheritance strictly-typed language, the situation for which it applies is still valid.
An Adapter in this Perl sense of the term is when a class is created to achieve by composition (objects
containing other object) something that can't be achieved by inheritance (sub-classing).
This is similar to the Decorator pattern, but is intended to be applied on a class-by-class basis, as
opposed to being able to be applied one object at a time, as is the case with the Decorator pattern.
The "Class::Adapter" object holds a parent object that it "wraps", and when a method is called on the
"Class::Adapter", it manually calls the same (or different) method with the same (or different)
parameters on the parent object contained within it.
Instead of these custom methods being hooked in on an object-by-object basis, they are defined at the
class level.
Basically, a "Class::Adapter" is one of your fall-back positions when Perl's inheritance model fails you,
or is no longer good enough, and you need to do something twisty in order to make several APIs play
nicely with each other.
WhatcanIdowiththeactualClass::Adapterclass
Well... nothing really. It exist to provide some extremely low level fundamental methods, and to provide
a common base for inheritance of Adapter classes.
The base "Class::Adapter" class doesn't even implement a way to push method calls through to the
underlying object, since the way in which that happens is the bit that changes from case to case.
To actually DO something, you probably want to go take a look at Class::Adapter::Builder, which makes the
creation of Adapter classes relatively quick and easy.