001    /*
002     *  This file is part of the Jikes RVM project (http://jikesrvm.org).
003     *
004     *  This file is licensed to You under the Eclipse Public License (EPL);
005     *  You may not use this file except in compliance with the License. You
006     *  may obtain a copy of the License at
007     *
008     *      http://www.opensource.org/licenses/eclipse-1.0.php
009     *
010     *  See the COPYRIGHT.txt file distributed with this work for information
011     *  regarding copyright ownership.
012     */
013    package org.mmtk.vm;
014    
015    /**
016     * Build-time configuration constants for MMTk.
017     */
018    public abstract class BuildTimeConfig {
019    
020      /**
021       * @return The name of the current MMTk plan
022       */
023      public abstract String getPlanName();
024    
025      /**
026       * Return a property of type String
027       * @param name The name of the property
028       * @return The value of the property
029       */
030      public abstract String getStringProperty(String name);
031    
032      /**
033       * Return a property of type String, with default.
034       * @param name The name of the property
035       * @param dflt Default value
036       * @return The value of the property
037       */
038      public abstract String getStringProperty(String name, String dflt);
039    
040      /**
041       * Return a property of type int
042       * @param name The name of the property
043       * @return The value of the property
044       */
045      public abstract int getIntProperty(String name);
046    
047      /**
048       * Return a property of type String, with default.
049       * @param name The name of the property
050       * @param dflt Default value
051       * @return The value of the property
052       */
053      public abstract int getIntProperty(String name, int dflt);
054    
055      /**
056       * Return a property of type boolean
057       * @param name The name of the property
058       * @return The value of the property
059       */
060      public abstract boolean getBooleanProperty(String name);
061    
062      /**
063       * Return a property of type boolean, with default.
064       * @param name The name of the property
065       * @param dflt Default value
066       * @return The value of the property
067       */
068      public abstract boolean getBooleanProperty(String name, boolean dflt);
069    }