
package org.apache.fop.fo.properties;

import java.util.Hashtable;
import java.util.Enumeration;
import org.apache.fop.svg.*;

public class FOPropertyMapping {

  private static Hashtable s_htGeneric = new Hashtable(200);
  private static Hashtable s_htElementLists = new Hashtable(10);
  
  static {
    // Generate the generic mapping

  /* PROPCLASS = ColorTypeProperty */

  /* PROPCLASS = EnumProperty */

  /* PROPCLASS = KeepProperty */

  /* PROPCLASS = CondLengthProperty */

  /* PROPCLASS = CondLengthProperty */

  /* PROPCLASS = LengthProperty */

  /* PROPCLASS = CondLengthProperty */

  /* PROPCLASS = LengthProperty */

  /* PROPCLASS = EnumProperty */

  /* PROPCLASS = EnumProperty */

  /* PROPCLASS = SpaceProperty */
    s_htGeneric.put("font-size", FontSizeMaker.maker("font-size"));
    s_htGeneric.put("start-indent", StartIndentMaker.maker("start-indent"));
    s_htGeneric.put("font-style", FontStyleMaker.maker("font-style"));
    s_htGeneric.put("flow-name", FlowNameMaker.maker("flow-name"));
    s_htGeneric.put("page-master-first", PageMasterFirstMaker.maker("page-master-first"));
    s_htGeneric.put("page-master-odd", PageMasterOddMaker.maker("page-master-odd"));
    s_htGeneric.put("extent", ExtentMaker.maker("extent"));
    s_htGeneric.put("font-weight", FontWeightMaker.maker("font-weight"));
    s_htGeneric.put("font-variant", FontVariantMaker.maker("font-variant"));
    s_htGeneric.put("margin-left", MarginLeftMaker.maker("margin-left"));
    s_htGeneric.put("font-family", FontFamilyMaker.maker("font-family"));
    s_htGeneric.put("page-master-even", PageMasterEvenMaker.maker("page-master-even"));
    s_htGeneric.put("margin-top", MarginTopMaker.maker("margin-top"));
    s_htGeneric.put("master-name", MasterNameMaker.maker("master-name"));
    s_htGeneric.put("end-indent", EndIndentMaker.maker("end-indent"));
    s_htGeneric.put("color", ColorMaker.maker("color"));
    s_htGeneric.put("margin-bottom", MarginBottomMaker.maker("margin-bottom"));
    s_htGeneric.put("page-height", PageHeightMaker.maker("page-height"));
    s_htGeneric.put("space-before", GenericSpace.maker("space-before"));
    s_htGeneric.put("space-after", GenericSpace.maker("space-after"));
    s_htGeneric.put("provisional-label-separation", ProvisionalLabelSeparationMaker.maker("provisional-label-separation"));
    s_htGeneric.put("margin-right", MarginRightMaker.maker("margin-right"));
    s_htGeneric.put("rule-thickness", RuleThicknessMaker.maker("rule-thickness"));
    s_htGeneric.put("page-width", PageWidthMaker.maker("page-width"));
    s_htGeneric.put("content-width", ContentWidthMaker.maker("content-width"));
    s_htGeneric.put("content-height", ContentHeightMaker.maker("content-height"));
    s_htGeneric.put("page-master-repeating", PageMasterRepeatingMaker.maker("page-master-repeating"));
    s_htGeneric.put("provisional-distance-between-starts", ProvisionalDistanceBetweenStartsMaker.maker("provisional-distance-between-starts"));
    s_htGeneric.put("text-align", TextAlignMaker.maker("text-align"));
    s_htGeneric.put("white-space-collapse", WhiteSpaceCollapseMaker.maker("white-space-collapse"));
    s_htGeneric.put("break-after", GenericBreak.maker("break-after"));
    s_htGeneric.put("break-before", GenericBreak.maker("break-before"));
    s_htGeneric.put("wrap-option", WrapOptionMaker.maker("wrap-option"));
    s_htGeneric.put("text-align-last", TextAlignLastMaker.maker("text-align-last"));
    s_htGeneric.put("line-height", LineHeightMaker.maker("line-height"));
    s_htGeneric.put("text-indent", TextIndentMaker.maker("text-indent"));
    s_htGeneric.put("src", SrcMaker.maker("src"));
    s_htGeneric.put("column-width", ColumnWidthMaker.maker("column-width"));
    s_htGeneric.put("keep-with-next", KeepWithNextMaker.maker("keep-with-next"));
    s_htGeneric.put("keep-with-previous", KeepWithPreviousMaker.maker("keep-with-previous"));
    s_htGeneric.put("keep-together", KeepTogetherMaker.maker("keep-together"));
    s_htGeneric.put("background-color", BackgroundColorMaker.maker("background-color"));
    s_htGeneric.put("padding", PaddingMaker.maker("padding"));
    s_htGeneric.put("padding-before", PaddingBeforeMaker.maker("padding-before"));
    s_htGeneric.put("padding-after", PaddingAfterMaker.maker("padding-after"));
    s_htGeneric.put("padding-start", PaddingStartMaker.maker("padding-start"));
    s_htGeneric.put("padding-end", PaddingEndMaker.maker("padding-end"));
    s_htGeneric.put("padding-top", PaddingTopMaker.maker("padding-top"));
    s_htGeneric.put("padding-left", PaddingLeftMaker.maker("padding-left"));
    s_htGeneric.put("padding-bottom", PaddingBottomMaker.maker("padding-bottom"));
    s_htGeneric.put("padding-right", PaddingRightMaker.maker("padding-right"));
    s_htGeneric.put("external-destination", ExternalDestinationMaker.maker("external-destination"));
    s_htGeneric.put("internal-destination", InternalDestinationMaker.maker("internal-destination"));
    s_htGeneric.put("border-before-color", BorderBeforeColorMaker.maker("border-before-color"));
    s_htGeneric.put("border-before-style", BorderBeforeStyleMaker.maker("border-before-style"));
    s_htGeneric.put("border-before-width", BorderBeforeWidthMaker.maker("border-before-width"));
    s_htGeneric.put("border-after-color", BorderAfterColorMaker.maker("border-after-color"));
    s_htGeneric.put("border-after-style", BorderAfterStyleMaker.maker("border-after-style"));
    s_htGeneric.put("border-after-width", BorderAfterWidthMaker.maker("border-after-width"));
    s_htGeneric.put("border-start-color", BorderStartColorMaker.maker("border-start-color"));
    s_htGeneric.put("border-start-style", BorderStartStyleMaker.maker("border-start-style"));
    s_htGeneric.put("border-start-width", BorderStartWidthMaker.maker("border-start-width"));
    s_htGeneric.put("border-end-color", BorderEndColorMaker.maker("border-end-color"));
    s_htGeneric.put("border-end-style", BorderEndStyleMaker.maker("border-end-style"));
    s_htGeneric.put("border-end-width", BorderEndWidthMaker.maker("border-end-width"));
    s_htGeneric.put("border-top-color", BorderTopColorMaker.maker("border-top-color"));
    s_htGeneric.put("border-top-style", BorderTopStyleMaker.maker("border-top-style"));
    s_htGeneric.put("border-top-width", BorderTopWidthMaker.maker("border-top-width"));
    s_htGeneric.put("border-bottom-color", BorderBottomColorMaker.maker("border-bottom-color"));
    s_htGeneric.put("border-bottom-style", BorderBottomStyleMaker.maker("border-bottom-style"));
    s_htGeneric.put("border-bottom-width", BorderBottomWidthMaker.maker("border-bottom-width"));
    s_htGeneric.put("border-left-color", BorderLeftColorMaker.maker("border-left-color"));
    s_htGeneric.put("border-left-style", BorderLeftStyleMaker.maker("border-left-style"));
    s_htGeneric.put("border-left-width", BorderLeftWidthMaker.maker("border-left-width"));
    s_htGeneric.put("border-right-color", BorderRightColorMaker.maker("border-right-color"));
    s_htGeneric.put("border-right-style", BorderRightStyleMaker.maker("border-right-style"));
    s_htGeneric.put("border-right-width", BorderRightWidthMaker.maker("border-right-width"));
    s_htGeneric.put("border-color", BorderColorMaker.maker("border-color"));
    s_htGeneric.put("border-style", GenericBorderStyle.maker("border-style"));
    s_htGeneric.put("border-width", BorderWidthMaker.maker("border-width"));
    s_htGeneric.put("border-top", BorderTopMaker.maker("border-top"));
    s_htGeneric.put("border-bottom", BorderBottomMaker.maker("border-bottom"));
    s_htGeneric.put("border-left", BorderLeftMaker.maker("border-left"));
    s_htGeneric.put("border-right", BorderRightMaker.maker("border-right"));
    s_htGeneric.put("position", PositionMaker.maker("position"));
    s_htGeneric.put("top", TopMaker.maker("top"));
    s_htGeneric.put("right", RightMaker.maker("right"));
    s_htGeneric.put("bottom", BottomMaker.maker("bottom"));
    s_htGeneric.put("left", LeftMaker.maker("left"));
    s_htGeneric.put("width", WidthMaker.maker("width"));
    s_htGeneric.put("height", HeightMaker.maker("height"));
    s_htGeneric.put("initial-page-number", InitialPageNumberMaker.maker("initial-page-number"));
    s_htGeneric.put("ref-id", RefIdMaker.maker("ref-id"));
    s_htGeneric.put("id", IdMaker.maker("id"));
    s_htGeneric.put("maximum-repeats", MaximumRepeatsMaker.maker("maximum-repeats"));
    s_htGeneric.put("page-position", PagePositionMaker.maker("page-position"));
    s_htGeneric.put("odd-or-even", OddOrEvenMaker.maker("odd-or-even"));
    s_htGeneric.put("blank-or-not-blank", BlankOrNotBlankMaker.maker("blank-or-not-blank"));
    s_htGeneric.put("rule-style", RuleStyleMaker.maker("rule-style"));
    s_htGeneric.put("leader-pattern", LeaderPatternMaker.maker("leader-pattern"));
    s_htGeneric.put("leader-length", LeaderLengthMaker.maker("leader-length"));
    s_htGeneric.put("leader-pattern-width", LeaderPatternWidthMaker.maker("leader-pattern-width"));
    s_htGeneric.put("leader-alignment", LeaderAlignmentMaker.maker("leader-alignment"));
    s_htGeneric.put("scaling", ScalingMaker.maker("scaling"));
    s_htGeneric.put("vertical-align", VerticalAlignMaker.maker("vertical-align"));
    s_htGeneric.put("overflow", OverflowMaker.maker("overflow"));
    s_htGeneric.put("column-count", ColumnCountMaker.maker("column-count"));
    s_htGeneric.put("column-gap", ColumnGapMaker.maker("column-gap"));
    s_htGeneric.put("span", SpanMaker.maker("span"));
    s_htGeneric.put("text-decoration", TextDecorationMaker.maker("text-decoration"));
    s_htGeneric.put("column-number", ColumnNumberMaker.maker("column-number"));
    s_htGeneric.put("number-columns-repeated", NumberColumnsRepeatedMaker.maker("number-columns-repeated"));
    s_htGeneric.put("number-columns-spanned", NumberColumnsSpannedMaker.maker("number-columns-spanned"));
    s_htGeneric.put("number-rows-spanned", NumberRowsSpannedMaker.maker("number-rows-spanned"));
    s_htGeneric.put("table-omit-header-at-break", TableOmitHeaderAtBreakMaker.maker("table-omit-header-at-break"));
    s_htGeneric.put("table-omit-footer-at-break", TableOmitFooterAtBreakMaker.maker("table-omit-footer-at-break"));
    s_htGeneric.put("region-name", RegionNameMaker.maker("region-name"));
    s_htGeneric.put("hyphenate", HyphenateMaker.maker("hyphenate"));
    s_htGeneric.put("hyphenation-character", HyphenationCharacterMaker.maker("hyphenation-character"));
    s_htGeneric.put("hyphenation-push-character-count", HyphenationPushCharacterCountMaker.maker("hyphenation-push-character-count"));
    s_htGeneric.put("hyphenation-remain-character-count", HyphenationRemainCharacterCountMaker.maker("hyphenation-remain-character-count"));
    s_htGeneric.put("language", LanguageMaker.maker("language"));
    s_htGeneric.put("widows", WidowsMaker.maker("widows"));
    s_htGeneric.put("orphans", OrphansMaker.maker("orphans"));
    s_htGeneric.put("country", CountryMaker.maker("country"));
    s_htGeneric.put("character", CharacterMaker.maker("character"));
    s_htGeneric.put("writing-mode", WritingModeMaker.maker("writing-mode"));
    s_htGeneric.put("block-progression-dimension", BlockProgressionDimensionMaker.maker("block-progression-dimension"));

  }


  public static Hashtable getGenericMappings() {
    return s_htGeneric;
  }

  public static Enumeration getElementMappings() {
    return s_htElementLists.keys();
  }

  public static Hashtable getElementMapping(String elemName) {
    return (Hashtable)s_htElementLists.get(elemName);
  }
}
