samples/aserverinfo/src/org/apidesign/aserverinfo/AServerInfo.java
changeset 292 60bb8519cb2d
parent 291 9cbb8364c4ae
child 293 4feb55fa3c91
     1.1 --- a/samples/aserverinfo/src/org/apidesign/aserverinfo/AServerInfo.java	Sun Nov 09 16:20:01 2008 +0100
     1.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.3 @@ -1,142 +0,0 @@
     1.4 -package org.apidesign.aserverinfo;
     1.5 -
     1.6 -import java.net.URL;
     1.7 -import org.openide.util.Lookup;
     1.8 -
     1.9 -// BEGIN: aserverinfo.api
    1.10 -public final class AServerInfo {
    1.11 -    public String getName() {
    1.12 -        return name == null ? "noname" : name.getName();
    1.13 -    }
    1.14 -    
    1.15 -    public URL getURL() {
    1.16 -        return url == null ? null : url.getURL();
    1.17 -    }
    1.18 -    
    1.19 -    public void reset() {
    1.20 -        if (reset != null) {
    1.21 -            reset.reset();
    1.22 -        }
    1.23 -    }
    1.24 -    
    1.25 -    public void shutdown() {
    1.26 -        if (shutdown != null) {
    1.27 -            shutdown.shutdown();
    1.28 -        }
    1.29 -    }
    1.30 -// FINISH: aserverinfo.api
    1.31 -
    1.32 -    //
    1.33 -    // private part
    1.34 -    //
    1.35 -    
    1.36 -    private final NameProvider name;
    1.37 -    private final URLProvider url;
    1.38 -    private final ResetHandler reset;
    1.39 -    private final ShutdownHandler shutdown;
    1.40 -
    1.41 -    private AServerInfo(
    1.42 -        NameProvider name, URLProvider url,
    1.43 -        ResetHandler reset, ShutdownHandler shutdown
    1.44 -    ) {
    1.45 -        this.name = name;
    1.46 -        this.url = url;
    1.47 -        this.reset = reset;
    1.48 -        this.shutdown = shutdown;
    1.49 -    }
    1.50 -
    1.51 -    //
    1.52 -    // factories
    1.53 -    //
    1.54 -
    1.55 -    // BEGIN: aserverinfo.create
    1.56 -    public interface NameProvider {
    1.57 -        public String getName();
    1.58 -    }
    1.59 -    public interface URLProvider {
    1.60 -        public URL getURL();
    1.61 -    }
    1.62 -    public interface ResetHandler {
    1.63 -        public void reset();
    1.64 -    }
    1.65 -    
    1.66 -    public static AServerInfo create(final Lookup interfaces) 
    1.67 -    // END: aserverinfo.create
    1.68 -    {
    1.69 -        NameProvider nameP = new NameProvider() {
    1.70 -            public String getName() {
    1.71 -                NameProvider p = interfaces.lookup(NameProvider.class);
    1.72 -                return p == null ? "noname" : p.getName();
    1.73 -            }
    1.74 -        };
    1.75 -        URLProvider urlP = new URLProvider() {
    1.76 -            public URL getURL() {
    1.77 -                URLProvider p = interfaces.lookup(URLProvider.class);
    1.78 -                return p == null ? null : p.getURL();
    1.79 -            }
    1.80 -        };
    1.81 -        ResetHandler resetP = new ResetHandler() {
    1.82 -            public void reset() {
    1.83 -                ResetHandler h = interfaces.lookup(ResetHandler.class);
    1.84 -                if (h != null) {
    1.85 -                    h.reset();
    1.86 -                }
    1.87 -            }
    1.88 -        };
    1.89 -        
    1.90 -        return new AServerInfo(nameP, urlP, resetP, null);
    1.91 -    }
    1.92 -    
    1.93 -    // BEGIN: aserverinfo.regularcreate
    1.94 -    public static AServerInfo create(
    1.95 -        NameProvider nameProvider, 
    1.96 -        URLProvider urlProvider, 
    1.97 -        ResetHandler reset
    1.98 -    )
    1.99 -    // END: aserverinfo.regularcreate
   1.100 -    {
   1.101 -        return new AServerInfo(nameProvider, urlProvider, reset, null);
   1.102 -    }
   1.103 -    
   1.104 -    // BEGIN: aserverinfo.regularcreate.withshutdown
   1.105 -    /** @since 2.0 */
   1.106 -    public interface ShutdownHandler {
   1.107 -        public void shutdown();
   1.108 -    }
   1.109 -    
   1.110 -    /** @since 2.0 */
   1.111 -    public static AServerInfo create(
   1.112 -        NameProvider nameProvider, 
   1.113 -        URLProvider urlProvider, 
   1.114 -        ResetHandler reset, 
   1.115 -        ShutdownHandler shutdown
   1.116 -    )
   1.117 -    // END: aserverinfo.regularcreate.withshutdown
   1.118 -    {
   1.119 -        return new AServerInfo(nameProvider, urlProvider, reset, shutdown);
   1.120 -    }
   1.121 -
   1.122 -    //
   1.123 -    // cumulative factory methods
   1.124 -    //
   1.125 -    
   1.126 -    // BEGIN: aserverinfo.cumulative.factory
   1.127 -    public static AServerInfo empty() {
   1.128 -        return new AServerInfo(null, null, null, null);
   1.129 -    }
   1.130 -    
   1.131 -    public final AServerInfo nameProvider(final NameProvider np) {
   1.132 -        return new AServerInfo(np, this.url, this.reset, this.shutdown);
   1.133 -    }
   1.134 -    // END: aserverinfo.cumulative.factory
   1.135 -
   1.136 -    public final AServerInfo urlProvider(final URLProvider up) {
   1.137 -        return new AServerInfo(this.name, up, this.reset, this.shutdown);
   1.138 -    }
   1.139 -    public final AServerInfo reset(final ResetHandler h) {
   1.140 -        return new AServerInfo(this.name, this.url, h, this.shutdown);
   1.141 -    }
   1.142 -    public final AServerInfo shutdown(final ShutdownHandler s) {
   1.143 -        return new AServerInfo(this.name, this.url, this.reset, s);
   1.144 -    }
   1.145 -}