blob: f570c8f49ba4b506a43a94fc3fd84b384b265de4 [file] [log] [blame]
////////////////////////////////////////////////////////////////////////////////
//
// Licensed to the Apache Software Foundation (ASF) under one or more
// contributor license agreements. See the NOTICE file distributed with
// this work for additional information regarding copyright ownership.
// The ASF licenses this file to You under the Apache License, Version 2.0
// (the "License"); you may not use this file except in compliance with
// the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
////////////////////////////////////////////////////////////////////////////////
package flashx.textLayout.conversion
{
import flash.utils.getQualifiedClassName;
import flashx.textLayout.debug.assert;
import flashx.textLayout.elements.ParagraphFormattedElement;
[ExcludeClass]
/**
* @private
* Contains configuration data about FlowElement types.
*/
internal class FlowElementInfo
{
/** Class used for the FlowElement sub-type */
private var _flowClass:Class;
/** Fully qualified class name */
private var _flowClassName:String;
/** Parsing function used for reading in data on a FlowElement instance */
private var _parser:Function;
/** Class for the object's XFL import/export interface */
private var _exporter:Function;
/** is this class a ParagraphFormattedElement */
private var _isParagraphFormattedElement:Boolean;
/** Construct a FlowElementInfo
* @param flowClass Class used to represent the FlowElement
* @param parser Function used for parsing XML description of a FlowElement
* @param exporter Class used to represent the FlowElement's exporter
* @param isParagraphFormattedElement Boolean indicating if this class is a subclass of ParagraphFormattedElement
*/
public function FlowElementInfo(flowClass:Class, parser:Function, exporter:Function , isParagraphFormattedElement:Boolean)
{
this._flowClass = flowClass;
this._parser = parser;
this._exporter = exporter;
this._flowClassName = getQualifiedClassName(flowClass);
this._isParagraphFormattedElement = isParagraphFormattedElement;
CONFIG::debug {
if (flowClass == null)
assert(isParagraphFormattedElement == false,"Bad value supplied for isParagraphFormattedElement");
else
assert(isParagraphFormattedElement == ((new flowClass) is ParagraphFormattedElement),"Bad value supplied for isParagraphFormattedElement");
}
}
/** Class used for the FlowElement sub-type */
public function get flowClass():Class
{ return _flowClass; }
/** Fully qualified class name */
public function get flowClassName():String
{ return _flowClassName; }
/** Parsing function used for reading in data on a FlowElement instance */
public function get parser():Function
{ return _parser; }
/** Class for the object's XFL import/export interface */
public function get exporter():Function
{ return _exporter; }
/** Boolean indicating if flowClass is a subclass of ParagraphFormattedElement */
public function get isParagraphFormattedElement():Boolean
{ return _isParagraphFormattedElement; }
}
}