1 /* 2 * File : RPPluginConfig.java 3 * Created : 17-Feb-2004 4 * By : parg 5 * 6 * Azureus - a Java Bittorrent client 7 * 8 * This program is free software; you can redistribute it and/or modify 9 * it under the terms of the GNU General Public License as published by 10 * the Free Software Foundation; either version 2 of the License, or 11 * (at your option) any later version. 12 * 13 * This program is distributed in the hope that it will be useful, 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 * GNU General Public License for more details ( see the LICENSE file ). 17 * 18 * You should have received a copy of the GNU General Public License 19 * along with this program; if not, write to the Free Software 20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 21 */ 22 23 package org.gudy.azureus2.pluginsimpl.remote; 24 25 import org.gudy.azureus2.plugins.config.PluginConfigSource; 26 27 /** 28 * @author parg 29 * 30 */ 31 32 import java.io.File; 33 import java.util.List; 34 import java.util.Map; 35 import java.util.Properties; 36 37 import org.gudy.azureus2.plugins.*; 38 import org.gudy.azureus2.plugins.config.ConfigParameter; 39 40 public class 41 RPPluginConfig 42 extends RPObject 43 implements PluginConfig 44 { 45 protected transient PluginConfig delegate; 46 protected transient Properties property_cache; 47 48 // don't change these field names as they are visible on XML serialisation 49 50 public String[] cached_property_names; 51 public Object[] cached_property_values; 52 53 public static PluginConfig create( PluginConfig _delegate )54 create( 55 PluginConfig _delegate ) 56 { 57 RPPluginConfig res =(RPPluginConfig)_lookupLocal( _delegate ); 58 59 if ( res == null ){ 60 61 res = new RPPluginConfig( _delegate ); 62 } 63 64 return( res ); 65 } 66 67 protected RPPluginConfig( PluginConfig _delegate )68 RPPluginConfig( 69 PluginConfig _delegate ) 70 { 71 super( _delegate ); 72 } 73 74 protected void _setDelegate( Object _delegate )75 _setDelegate( 76 Object _delegate ) 77 { 78 delegate = (PluginConfig)_delegate; 79 80 cached_property_names = new String[]{ 81 CORE_PARAM_INT_MAX_UPLOAD_SPEED_KBYTES_PER_SEC, 82 CORE_PARAM_INT_MAX_UPLOAD_SPEED_SEEDING_KBYTES_PER_SEC, 83 CORE_PARAM_INT_MAX_DOWNLOAD_SPEED_KBYTES_PER_SEC, 84 CORE_PARAM_INT_MAX_CONNECTIONS_PER_TORRENT, 85 CORE_PARAM_INT_MAX_CONNECTIONS_GLOBAL, 86 CORE_PARAM_INT_MAX_DOWNLOADS, 87 CORE_PARAM_INT_MAX_ACTIVE, 88 CORE_PARAM_INT_MAX_ACTIVE_SEEDING, 89 CORE_PARAM_INT_MAX_UPLOADS, 90 CORE_PARAM_INT_MAX_UPLOADS_SEEDING 91 }; 92 93 cached_property_values = new Object[]{ 94 new Integer( delegate.getIntParameter( cached_property_names[0] )), 95 new Integer( delegate.getIntParameter( cached_property_names[1] )), 96 new Integer( delegate.getIntParameter( cached_property_names[2] )), 97 new Integer( delegate.getIntParameter( cached_property_names[3] )), 98 new Integer( delegate.getIntParameter( cached_property_names[4] )), 99 new Integer( delegate.getIntParameter( cached_property_names[5] )), 100 new Integer( delegate.getIntParameter( cached_property_names[6] )), 101 new Integer( delegate.getIntParameter( cached_property_names[7] )), 102 new Integer( delegate.getIntParameter( cached_property_names[8] )), 103 new Integer( delegate.getIntParameter( cached_property_names[9] )) 104 }; 105 } 106 107 public Object _setLocal()108 _setLocal() 109 110 throws RPException 111 { 112 return( _fixupLocal()); 113 } 114 115 public void _setRemote( RPRequestDispatcher _dispatcher )116 _setRemote( 117 RPRequestDispatcher _dispatcher ) 118 { 119 super._setRemote( _dispatcher ); 120 121 property_cache = new Properties(); 122 123 for (int i=0;i<cached_property_names.length;i++){ 124 125 // System.out.println( "cache:" + cached_property_names[i] + "=" + cached_property_values[i] ); 126 127 property_cache.put(cached_property_names[i],cached_property_values[i]); 128 } 129 } 130 131 public RPReply _process( RPRequest request )132 _process( 133 RPRequest request ) 134 { 135 String method = request.getMethod(); 136 137 Object[] params = (Object[])request.getParams(); 138 139 if ( method.equals( "getPluginIntParameter[String,int]")){ 140 141 return( new RPReply( new Integer( delegate.getPluginIntParameter((String)params[0],((Integer)params[1]).intValue())))); 142 143 }else if ( method.equals( "getPluginStringParameter[String,String]")){ 144 145 return( new RPReply( delegate.getPluginStringParameter((String)params[0],(String)params[1]))); 146 147 }else if ( method.equals( "setPluginParameter[String,int]")){ 148 149 delegate.setPluginParameter((String)params[0],((Integer)params[1]).intValue()); 150 151 return( null ); 152 153 }else if ( method.equals( "getIntParameter[String,int]") || 154 method.equals( "getParameter[String,int]")){ 155 156 return( new RPReply( new Integer( delegate.getIntParameter((String)params[0],((Integer)params[1]).intValue())))); 157 158 }else if ( method.equals( "setParameter[String,int]")){ 159 160 delegate.setIntParameter((String)params[0],((Integer)params[1]).intValue()); 161 162 return( null ); 163 164 }else if ( method.equals( "save")){ 165 166 try{ 167 delegate.save(); 168 169 return( null ); 170 171 }catch( PluginException e ){ 172 173 return( new RPReply( e )); 174 } 175 } 176 177 178 throw( new RPException( "Unknown method: " + method )); 179 } 180 181 // *************************************************** 182 183 public boolean isNewInstall()184 isNewInstall() 185 { 186 notSupported(); 187 188 return( false ); 189 } 190 191 public String getPluginConfigKeyPrefix()192 getPluginConfigKeyPrefix() 193 { 194 notSupported(); 195 196 return(null); 197 } 198 getFloatParameter(String key)199 public float getFloatParameter(String key) { 200 notSupported(); 201 202 return(0); 203 } 204 getIntParameter(String key)205 public int getIntParameter(String key) 206 { 207 notSupported(); 208 209 return(0); 210 } 211 getIntParameter(String key, int default_value)212 public int getIntParameter(String key, int default_value) 213 { 214 Integer res = (Integer)property_cache.get( key ); 215 216 if ( res == null ){ 217 218 res = (Integer)_dispatcher.dispatch( new RPRequest( this, "getIntParameter[String,int]", new Object[]{key,new Integer(default_value)} )).getResponse(); 219 } 220 221 return( res.intValue()); 222 } 223 224 public void setIntParameter( String key, int value )225 setIntParameter( 226 String key, 227 int value ) 228 { 229 property_cache.put( key, new Integer( value )); 230 231 _dispatcher.dispatch( new RPRequest( this, "setParameter[String,int]", new Object[]{key,new Integer(value)} )).getResponse(); 232 } 233 getStringParameter(String key)234 public String getStringParameter(String key) 235 { 236 notSupported(); 237 238 return(null); 239 } 240 getStringParameter(String name, String _default )241 public String getStringParameter(String name, String _default ) 242 { 243 notSupported(); 244 245 return(null); 246 } 247 getBooleanParameter(String key)248 public boolean getBooleanParameter(String key) 249 { 250 notSupported(); 251 252 return(false); 253 } 254 getBooleanParameter(String key, boolean _default )255 public boolean getBooleanParameter(String key, boolean _default ) 256 { 257 notSupported(); 258 259 return( false ); 260 } 261 setBooleanParameter(String key, boolean value )262 public void setBooleanParameter(String key, boolean value ) 263 { 264 notSupported(); 265 } 266 getByteParameter(String name, byte[] _default )267 public byte[] getByteParameter(String name, byte[] _default ) 268 { 269 notSupported(); 270 271 return( null ); 272 } 273 274 public List getPluginListParameter( String key, List default_value )275 getPluginListParameter( String key, List default_value ) 276 { 277 notSupported(); 278 279 return( null ); 280 } 281 282 public void setPluginListParameter( String key, List value )283 setPluginListParameter( String key, List value ) 284 { 285 notSupported(); 286 } 287 288 public Map getPluginMapParameter( String key, Map default_value )289 getPluginMapParameter( String key, Map default_value ) 290 { 291 notSupported(); 292 293 return( null ); 294 } 295 296 public void setPluginMapParameter( String key, Map value )297 setPluginMapParameter( String key, Map value ) 298 { 299 notSupported(); 300 } getPluginIntParameter(String key)301 public int getPluginIntParameter(String key) 302 { 303 notSupported(); 304 305 return(0); 306 } 307 getPluginIntParameter(String key,int defaultValue)308 public int getPluginIntParameter(String key,int defaultValue) 309 { 310 Integer res = (Integer)_dispatcher.dispatch( new RPRequest( this, "getPluginIntParameter[String,int]", new Object[]{key,new Integer(defaultValue)} )).getResponse(); 311 312 return( res.intValue()); 313 } 314 getPluginStringParameter(String key)315 public String getPluginStringParameter(String key) 316 { 317 notSupported(); 318 319 return(null); 320 } 321 getPluginStringParameter(String key,String defaultValue)322 public String getPluginStringParameter(String key,String defaultValue) 323 { 324 String res = (String)_dispatcher.dispatch( new RPRequest( this, "getPluginStringParameter[String,String]", new Object[]{key,defaultValue} )).getResponse(); 325 326 return( res ); 327 } 328 getPluginBooleanParameter(String key)329 public boolean getPluginBooleanParameter(String key) 330 { 331 notSupported(); 332 333 return(false); 334 } 335 getPluginByteParameter(String key, byte[] defaultValue )336 public byte[] getPluginByteParameter(String key, byte[] defaultValue ) 337 { 338 notSupported(); 339 340 return(null); 341 } 342 getPluginBooleanParameter(String key,boolean defaultValue)343 public boolean getPluginBooleanParameter(String key,boolean defaultValue) 344 { 345 notSupported(); 346 347 return(false); 348 } 349 setPluginParameter(String key,int value)350 public void setPluginParameter(String key,int value) 351 { 352 _dispatcher.dispatch( new RPRequest( this, "setPluginParameter[String,int]", new Object[]{key,new Integer(value)} )); 353 } 354 setPluginParameter(String key,int value,boolean global)355 public void setPluginParameter(String key,int value,boolean global) 356 { 357 notSupported(); 358 } 359 setPluginParameter(String key,String value)360 public void setPluginParameter(String key,String value) 361 { 362 363 notSupported(); 364 } 365 setPluginParameter(String key,boolean value)366 public void setPluginParameter(String key,boolean value) 367 { 368 notSupported(); 369 } 370 setPluginParameter(String key,byte[] value)371 public void setPluginParameter(String key,byte[] value) 372 { 373 notSupported(); 374 } 375 376 public ConfigParameter getParameter( String key )377 getParameter( 378 String key ) 379 { 380 notSupported(); 381 382 return( null ); 383 } 384 385 public ConfigParameter getPluginParameter( String key )386 getPluginParameter( 387 String key ) 388 { 389 notSupported(); 390 391 return( null ); 392 } 393 394 public boolean getUnsafeBooleanParameter( String key, boolean default_value )395 getUnsafeBooleanParameter( 396 String key, 397 boolean default_value ) 398 { 399 notSupported(); 400 401 return( false ); 402 } 403 404 public void setUnsafeBooleanParameter( String key, boolean value )405 setUnsafeBooleanParameter( 406 String key, 407 boolean value ) 408 { 409 notSupported(); 410 } 411 412 public int getUnsafeIntParameter( String key, int default_value )413 getUnsafeIntParameter( 414 String key, 415 int default_value ) 416 { 417 notSupported(); 418 419 return( 0 ); 420 } 421 422 public void setUnsafeIntParameter( String key, int value )423 setUnsafeIntParameter( 424 String key, 425 int value ) 426 { 427 notSupported(); 428 } 429 430 public long getUnsafeLongParameter( String key, long default_value )431 getUnsafeLongParameter( 432 String key, 433 long default_value ) 434 { 435 notSupported(); 436 437 return( 0 ); 438 } 439 440 public void setUnsafeLongParameter( String key, long value )441 setUnsafeLongParameter( 442 String key, 443 long value ) 444 { 445 notSupported(); 446 } 447 448 public float getUnsafeFloatParameter( String key, float default_value )449 getUnsafeFloatParameter( 450 String key, 451 float default_value ) 452 { 453 notSupported(); 454 455 return( 0 ); 456 } 457 458 public void setUnsafeFloatParameter( String key, float value )459 setUnsafeFloatParameter( 460 String key, 461 float value ) 462 { 463 notSupported(); 464 } 465 466 public String getUnsafeStringParameter( String key, String default_value )467 getUnsafeStringParameter( 468 String key, 469 String default_value ) 470 { 471 notSupported(); 472 473 return( null ); 474 } 475 476 public void setUnsafeStringParameter( String key, String value )477 setUnsafeStringParameter( 478 String key, 479 String value ) 480 { 481 notSupported(); 482 } 483 484 public Map getUnsafeParameterList()485 getUnsafeParameterList() 486 { 487 notSupported(); 488 489 return( null ); 490 } 491 492 public void save()493 save() 494 throws PluginException 495 { 496 try{ 497 _dispatcher.dispatch( new RPRequest( this, "save", null)).getResponse(); 498 499 }catch( RPException e ){ 500 501 Throwable cause = e.getCause(); 502 503 if ( cause instanceof PluginException ){ 504 505 throw((PluginException)cause); 506 } 507 508 throw( e ); 509 } 510 } 511 512 public File getPluginUserFile( String name )513 getPluginUserFile( 514 String name ) 515 { 516 notSupported(); 517 518 return( null ); 519 } 520 521 public void addListener( final PluginConfigListener l )522 addListener( 523 final PluginConfigListener l ) 524 { 525 notSupported(); 526 } 527 528 // @see org.gudy.azureus2.plugins.PluginConfig#setPluginConfigKeyPrefix(java.lang.String) 529 setPluginConfigKeyPrefix(String _key)530 public void setPluginConfigKeyPrefix(String _key) { 531 // TODO Auto-generated method stub 532 533 } 534 hasParameter(String x)535 public boolean hasParameter(String x) {notSupported(); return false;} hasPluginParameter(String x)536 public boolean hasPluginParameter(String x) {notSupported(); return false;} removePluginParameter(String x)537 public boolean removePluginParameter(String x) {notSupported(); return false;} removePluginColorParameter(String x)538 public boolean removePluginColorParameter(String x) {notSupported(); return false;} 539 getByteParameter(String key)540 public byte[] getByteParameter(String key) {notSupported(); return null;} getFloatParameter(String key, float default_value)541 public float getFloatParameter(String key, float default_value) {notSupported(); return 0;} getLongParameter(String key)542 public long getLongParameter(String key) {notSupported(); return 0;} getLongParameter(String key, long default_value)543 public long getLongParameter(String key, long default_value) {notSupported(); return 0;} setByteParameter(String key, byte[] value)544 public void setByteParameter(String key, byte[] value) {notSupported();} setFloatParameter(String key, float value)545 public void setFloatParameter(String key, float value) {notSupported();} setLongParameter(String key, long value)546 public void setLongParameter(String key, long value) {notSupported();} setStringParameter(String key, String value)547 public void setStringParameter(String key, String value) {notSupported();} getPluginByteParameter(String key)548 public byte[] getPluginByteParameter(String key) {notSupported(); return null;} getPluginFloatParameter(String key)549 public float getPluginFloatParameter(String key) {notSupported(); return 0;} getPluginFloatParameter(String key, float default_value)550 public float getPluginFloatParameter(String key, float default_value) {notSupported(); return 0;} getPluginLongParameter(String key)551 public long getPluginLongParameter(String key) {notSupported(); return 0;} getPluginLongParameter(String key, long default_value)552 public long getPluginLongParameter(String key, long default_value) {notSupported(); return 0;} setPluginParameter(String key, float value)553 public void setPluginParameter(String key, float value) {notSupported();} setPluginParameter(String key, long value)554 public void setPluginParameter(String key, long value) {notSupported();} getUnsafeBooleanParameter(String key)555 public boolean getUnsafeBooleanParameter(String key) {notSupported(); return false;} getUnsafeByteParameter(String key)556 public byte[] getUnsafeByteParameter(String key) {notSupported(); return null;} getUnsafeByteParameter(String key, byte[] default_value)557 public byte[] getUnsafeByteParameter(String key, byte[] default_value) {notSupported(); return null;} getUnsafeFloatParameter(String key)558 public float getUnsafeFloatParameter(String key) {notSupported(); return 0;} getUnsafeIntParameter(String key)559 public int getUnsafeIntParameter(String key) {notSupported(); return 0;} getUnsafeLongParameter(String key)560 public long getUnsafeLongParameter(String key) {notSupported(); return 0;} getUnsafeStringParameter(String key)561 public String getUnsafeStringParameter(String key) {notSupported(); return null;} setUnsafeByteParameter(String key, byte[] value)562 public void setUnsafeByteParameter(String key, byte[] value) {notSupported();} 563 getCoreBooleanParameter(String key)564 public boolean getCoreBooleanParameter(String key) {notSupported(); return false;} getCoreBooleanParameter(String key, boolean default_value)565 public boolean getCoreBooleanParameter(String key, boolean default_value) {notSupported(); return false;} getCoreByteParameter(String key, byte[] default_value)566 public byte[] getCoreByteParameter(String key, byte[] default_value) {notSupported(); return null;} getCoreByteParameter(String key)567 public byte[] getCoreByteParameter(String key) {notSupported(); return null;} getCoreFloatParameter(String key)568 public float getCoreFloatParameter(String key) {notSupported(); return 0;} getCoreFloatParameter(String key, float default_value)569 public float getCoreFloatParameter(String key, float default_value) {notSupported(); return 0;} getCoreIntParameter(String key)570 public int getCoreIntParameter(String key) {notSupported(); return 0;} getCoreIntParameter(String key, int default_value)571 public int getCoreIntParameter(String key, int default_value) {notSupported(); return 0;} getCoreStringParameter(String key)572 public String getCoreStringParameter(String key) {notSupported(); return null;} getCoreStringParameter(String key, String default_value)573 public String getCoreStringParameter(String key, String default_value) {notSupported(); return null;} getCoreLongParameter(String key)574 public long getCoreLongParameter(String key) {notSupported(); return 0;} getCoreLongParameter(String key, long default_value)575 public long getCoreLongParameter(String key, long default_value) {notSupported(); return 0;} setCoreBooleanParameter(String key, boolean value)576 public void setCoreBooleanParameter(String key, boolean value) {notSupported();} setCoreByteParameter(String key, byte[] value)577 public void setCoreByteParameter(String key, byte[] value) {notSupported();} setCoreFloatParameter(String key, float value)578 public void setCoreFloatParameter(String key, float value) {notSupported();} setCoreIntParameter(String key, int value)579 public void setCoreIntParameter(String key, int value) {notSupported();} setCoreLongParameter(String key, long value)580 public void setCoreLongParameter(String key, long value) {notSupported();} setCoreStringParameter(String key, String value)581 public void setCoreStringParameter(String key, String value) {notSupported();} 582 getCoreColorParameter(String key)583 public int[] getCoreColorParameter(String key) {notSupported(); return null;} getCoreColorParameter(String key, int[] default_value)584 public int[] getCoreColorParameter(String key, int[] default_value) {notSupported(); return null;} setCoreColorParameter(String key, int[] value)585 public void setCoreColorParameter(String key, int[] value) {notSupported();} setCoreColorParameter(String key, int[] value, boolean override)586 public void setCoreColorParameter(String key, int[] value, boolean override) {notSupported();} getPluginColorParameter(String key)587 public int[] getPluginColorParameter(String key) {notSupported(); return null;} getPluginColorParameter(String key, int[] default_value)588 public int[] getPluginColorParameter(String key, int[] default_value) {notSupported(); return null;} getPluginColorParameter(String key, int[] default_value, boolean override)589 public int[] getPluginColorParameter(String key, int[] default_value, boolean override) {notSupported(); return null;} setPluginColorParameter(String key, int[] value)590 public void setPluginColorParameter(String key, int[] value) {notSupported();} setPluginColorParameter(String key, int[] value, boolean override)591 public void setPluginColorParameter(String key, int[] value, boolean override) {notSupported();} getUnsafeColorParameter(String key)592 public int[] getUnsafeColorParameter(String key) {notSupported(); return null;} getUnsafeColorParameter(String key, int[] default_value)593 public int[] getUnsafeColorParameter(String key, int[] default_value) {notSupported(); return null;} setUnsafeColorParameter(String key, int[] default_value)594 public void setUnsafeColorParameter(String key, int[] default_value) {notSupported();} setUnsafeColorParameter(String key, int[] default_value, boolean override)595 public void setUnsafeColorParameter(String key, int[] default_value, boolean override) {notSupported();} getPluginConfigSource()596 public PluginConfigSource getPluginConfigSource() {notSupported(); return null;} setPluginConfigSource(PluginConfigSource source)597 public void setPluginConfigSource(PluginConfigSource source) {notSupported();} enableExternalConfigSource()598 public PluginConfigSource enableExternalConfigSource() {notSupported(); return null;} 599 setPluginStringListParameter(String key, String[] value)600 public void setPluginStringListParameter(String key, String[] value) {notSupported();} getPluginStringListParameter(String key)601 public String[] getPluginStringListParameter(String key) {notSupported(); return null;} 602 } 603