001 /* 002 * JBoss DNA (http://www.jboss.org/dna) 003 * See the COPYRIGHT.txt file distributed with this work for information 004 * regarding copyright ownership. Some portions may be licensed 005 * to Red Hat, Inc. under one or more contributor license agreements. 006 * See the AUTHORS.txt file in the distribution for a full listing of 007 * individual contributors. 008 * 009 * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA 010 * is licensed to you under the terms of the GNU Lesser General Public License as 011 * published by the Free Software Foundation; either version 2.1 of 012 * the License, or (at your option) any later version. 013 * 014 * JBoss DNA is distributed in the hope that it will be useful, 015 * but WITHOUT ANY WARRANTY; without even the implied warranty of 016 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 017 * Lesser General Public License for more details. 018 * 019 * You should have received a copy of the GNU Lesser General Public 020 * License along with this software; if not, write to the Free 021 * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 022 * 02110-1301 USA, or see the FSF site: http://www.fsf.org. 023 */ 024 package org.jboss.example.dna.sequencer; 025 026 import java.util.List; 027 import java.util.Map; 028 import java.util.Properties; 029 import java.util.TreeMap; 030 import net.jcip.annotations.Immutable; 031 032 /** 033 * @author Serge Pagop 034 * @author Randall Hauch 035 */ 036 @Immutable 037 public class JavaInfo extends ContentInfo { 038 039 private final Map<String, List<Properties>> javaElements; 040 private final String type; 041 042 protected JavaInfo( String path, 043 String name, 044 String type, 045 Map<String, List<Properties>> javaElements ) { 046 super(path, name, null); 047 this.type = type; 048 this.javaElements = javaElements != null ? new TreeMap<String, List<Properties>>(javaElements) : new TreeMap<String, List<Properties>>(); 049 } 050 051 public String getType() { 052 return this.type; 053 } 054 055 /** 056 * @return javaElements 057 */ 058 public Map<String, List<Properties>> getJavaElements() { 059 return javaElements; 060 } 061 062 @Override 063 public String toString() { 064 StringBuilder sb = new StringBuilder(); 065 sb.append(" Name: " + getName() + "\n"); 066 sb.append(" Path: " + getPath() + "\n"); 067 sb.append(" Type: " + getType() + "\n"); 068 for (Map.Entry<Object, Object> entry : getProperties().entrySet()) { 069 sb.append(" " + entry.getKey() + ": " + entry.getValue() + "\n"); 070 } 071 for (Map.Entry<String, List<Properties>> javaElement : getJavaElements().entrySet()) { 072 sb.append("\n ------ " + javaElement.getKey() + " ------\n"); 073 for (Properties props : javaElement.getValue()) { 074 for (Map.Entry<Object, Object> entry : props.entrySet()) { 075 if (!entry.getKey().equals("jcr:primaryType")) { 076 sb.append(" " + entry.getKey() + " => " + entry.getValue() + "\n"); 077 } 078 } 079 } 080 } 081 return sb.toString(); 082 } 083 084 }