1 87 package org.codehaus.loom.components.extensions.pkgmgr; 88 89 import java.io.File ; 90 91 import org.codehaus.loom.extension.Extension; 92 93 99 public final class OptionalPackage 100 { 101 private final File m_file; 102 private final Extension[] m_available; 103 private final Extension[] m_required; 104 105 111 public static final File [] toFiles( final OptionalPackage[] packages ) 112 { 113 final File [] results = new File [ packages.length ]; 114 115 for( int i = 0; i < packages.length; i++ ) 116 { 117 results[ i ] = packages[ i ].getFile(); 118 } 119 120 return results; 121 } 122 123 130 public OptionalPackage( final File file, 131 final Extension[] available, 132 final Extension[] required ) 133 { 134 if( null == file ) 135 { 136 throw new NullPointerException ( "file" ); 137 } 138 139 if( null == available ) 140 { 141 throw new NullPointerException ( "available" ); 142 } 143 144 if( null == required ) 145 { 146 throw new NullPointerException ( "required" ); 147 } 148 149 m_file = file; 150 m_available = available; 151 m_required = required; 152 } 153 154 159 public File getFile() 160 { 161 return m_file; 162 } 163 164 170 public Extension[] getRequiredExtensions() 171 { 172 return m_required; 173 } 174 175 180 public Extension[] getAvailableExtensions() 181 { 182 return m_available; 183 } 184 185 193 public boolean isCompatible( final Extension extension ) 194 { 195 for( int i = 0; i < m_available.length; i++ ) 196 { 197 if( m_available[ i ].isCompatibleWith( extension ) ) 198 { 199 return true; 200 } 201 } 202 203 return false; 204 } 205 206 211 public String toString() 212 { 213 final StringBuffer sb = new StringBuffer ( "OptionalPackage[" ); 214 sb.append( m_file ); 215 216 sb.append( ", Available[" ); 217 for( int i = 0; i < m_available.length; i++ ) 218 { 219 if( 0 != i ) 220 { 221 sb.append( " " ); 222 } 223 sb.append( m_available[ i ].getExtensionName() ); 224 } 225 226 sb.append( "], Required[" ); 227 for( int i = 0; i < m_required.length; i++ ) 228 { 229 if( 0 != i ) 230 { 231 sb.append( " " ); 232 } 233 sb.append( m_required[ i ].getExtensionName() ); 234 } 235 236 sb.append( "] ]" ); 237 238 return sb.toString(); 239 } 240 } 241 | Popular Tags |