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.utility.options;
014    
015    import org.vmmagic.pragma.Uninterruptible;
016    
017    /**
018     * The zeroing approach to use for new object allocations.
019     * Affects each plan differently.
020     */
021    @Uninterruptible
022    public final class NurseryZeroing extends org.vmutil.options.EnumOption {
023    
024      public final int TEMPORAL = 0;
025      public final int NON_TEMPORAL = 1;
026      public final int CONCURRENT = 2;
027      public final int ADAPTIVE = 3;
028    
029      /**
030       * Create the option.
031       */
032      public NurseryZeroing() {
033        super(Options.set, "Nursery Zeroing",
034              "The default approach used for zero initializing nursery objects",
035              new String[] {"temporal", "nontemporal", "concurrent", "adaptive"},
036              "temporal");
037      }
038    
039      /**
040       * @return {@code true} if a non temporal zeroing approach is to be used.
041       */
042      public boolean getNonTemporal() {
043        return getValue() != TEMPORAL;
044      }
045    
046      /**
047       * @return {@code true} if a concurrent zeroing approach is to be used.
048       */
049      public boolean getConcurrent() {
050        return getValue() == CONCURRENT || getValue() == ADAPTIVE;
051      }
052    
053      /**
054       * @return {@code true} if a concurrent zeroing approach is to be used.
055       */
056      public boolean getAdaptive() {
057        return getValue() == ADAPTIVE;
058      }
059    }