Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
   *
   * Copyright (c) 2007-2011 Oracle and/or its affiliates. All rights reserved.
   *
   * The contents of this file are subject to the terms of either the GNU
   * General Public License Version 2 only ("GPL") or the Common Development
   * and Distribution License("CDDL") (collectively, the "License").  You
   * may not use this file except in compliance with the License.  You can
  * obtain a copy of the License at
  * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
  * or packager/legal/LICENSE.txt.  See the License for the specific
  * language governing permissions and limitations under the License.
  *
  * When distributing the software, include this License Header Notice in each
  * file and include the License file at packager/legal/LICENSE.txt.
  *
  * GPL Classpath Exception:
  * Oracle designates this particular file as subject to the "Classpath"
  * exception as provided by Oracle in the GPL Version 2 section of the License
  * file that accompanied this code.
  *
  * Modifications:
  * If applicable, add the following below the License Header, with the fields
  * enclosed by brackets [] replaced by your own identifying information:
  * "Portions Copyright [year] [name of copyright owner]"
  *
  * Contributor(s):
  * If you wish your version of this file to be governed by only the CDDL or
  * only the GPL Version 2, indicate your decision by adding "[Contributor]
  * elects to include this software in this distribution under the [CDDL or GPL
  * Version 2] license."  If you don't indicate a single choice of license, a
  * recipient has the option to distribute your version of this file under
  * either the CDDL, the GPL Version 2 or to extend the choice of license to
  * its licensees as provided above.  However, if you add GPL Version 2 code
  * and therefore, elected the GPL Version 2 license, then the option applies
  * only if the new code is made subject to such option by the copyright
  * holder.
  */
 package com.sun.enterprise.tools;
 
 import static com.sun.hk2.component.InhabitantsFile.INDEX_KEY;
 
 
 import java.io.File;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
Inhabitants descriptor as a map from the class name to its line.

Author(s):
Kohsuke Kawaguchi
Jeff Trent
See also:
com.sun.hk2.component.InhabitantFileBasedParser
 
 @SuppressWarnings("serial")
 public class InhabitantsDescriptor extends HashMap<StringString> {
   private final Logger logger = Logger.getLogger(InhabitantsDescriptor.class.getName());
   
   private boolean dirty = false;
   private boolean dateEnabled = true;
   private boolean commentEnabled = true;
   private String comment;
   
   public InhabitantsDescriptor() {
   }
 
   public InhabitantsDescriptor(File fthrows IOException {
     load(f);
   }
   
   public void enableDateOutput(boolean enabled) {
     this. = enabled;
   }
   
   public void enableCommentOutput(boolean enabled) {
     this. = enabled;
   }
   
   public void setComment(String comment) {
     if (null == comment) {
      this. = comment;
    } else {
      this. = "# " + comment;
    }
  }
  public void appendComment(String comment) {
    if (null == this.) {
      setComment(comment);
    } else {
      this. += "\n# " + comment;
    }
  }
  
  
Loads an existing file.
  public void load(File fthrows IOException {
    FileInputStream in = new FileInputStream(f);
    try {
      InhabitantsScanner scanner = new InhabitantsScanner(inf.getPath());
      for (InhabitantParser kvpp : scanner) {
        put(kvpp.getImplName(), kvpp.getLine());
      }
    } finally {
      if (null != in) {
        in.close();
      }
    }
  }
  public String put(String keyString value) {
     = true;
    .log(."adding kv={0},{1}"new Object[] {keyvalue});
    return super.put(keyvalue);
  }
  @SuppressWarnings("unchecked")
  public String putAll(String service,
      Collection<Stringcontracts,
      Collection<Stringannotations,
      String name,
      Object metaObj) {
    StringBuilder buf = new StringBuilder();
    buf.append(.).append('=').append(service);
    
    if (null != contracts) {
      for (String contract : contracts) {
        buf.append(",").append().append("=").append(contract);
        if (null != name) {
          buf.append(":").append(name);
        }
      }
    }
    
    if (null != annotations) {
      for (String contract : annotations) {
        buf.append(",").append().append("=").append(contract);
      }
    }
    
    if (metaObj instanceof Map) {
      Map<StringStringmeta = (Map<StringString>)metaObj;
      for (Map.Entry<StringStringentry : meta.entrySet()) {
        buf.append(",").append(entry.getKey()).append("=").append(entry.getValue());
      }
    } else if (metaObj instanceof MultiMap) {
      MultiMap<StringStringmeta = (MultiMap<StringString>)metaObj;
      for (Map.Entry<StringList<String>> entry : meta.entrySet()) {
        String key = entry.getKey();
        List<Stringvals = new ArrayList<String>(entry.getValue());
        Collections.sort(vals);
        for (String val : vals) {
          buf.append(",").append(key).append("=").append(val);
        }
      }
    }
    
    return put(servicebuf.toString());
  }
  public String remove(Object key) {
     = true;
    .log(."removing k={0}"key);
    return super.remove(key);
  }

  
Writes the descriptor to a file.
  public void write(File outputDirMessager messagerString habitatName) {
    File out = new File(new File(outputDir.), habitatName);
    
    if (!) {
      if (out.exists()) {
        out.delete();
      }
      
      return// no need to write.
    }
    try {
      write(out);
    } catch (IOException e) {
      if (null == messager) {
        .warning("Failed to write inhabitants file " + habitatName);
      } else {
        messager.printError("Failed to write inhabitants file " + habitatNamee);
      }
    }
  }
  public void write(File outthrows IOException {
    File parent = out.getParentFile();
    if (null != parent) {
      parent.mkdirs();
    }
    
    PrintWriter w = new PrintWriter(out"UTF-8");
    try {
      write(w);
    } finally {
      w.close();
    }
  }
  @SuppressWarnings("deprecation")
  public void write(PrintWriter w) {
    if () {
      w.println("# generated on " + new Date().toGMTString());
    }
    
    if ( && null != ) {
      w.println();
    }
    
    for (String line : values()) {
      w.println(line);
    }
  }
  public String toString() {
    PrintWriter w = new PrintWriter(os);
    write(w);
    w.close();
    return os.toString();
  }
  
New to GrepCode? Check out our FAQ X