diff options
Diffstat (limited to 'docs')
281 files changed, 4325 insertions, 4391 deletions
diff --git a/docs/LICENSE-AspectJ.adoc b/docs/LICENSE-AspectJ.adoc index 387a985e5..c53ebe6e0 100644 --- a/docs/LICENSE-AspectJ.adoc +++ b/docs/LICENSE-AspectJ.adoc @@ -30,7 +30,7 @@ conditions of use. === BCEL v5.1 This product contains software developed by the Apache Software -Foundation (http://www.apache.org/[http://www.apache.org]). +Foundation (https://www.apache.org/[https://www.apache.org]). AspectJ includes a modified version of the Apache Jakarta Byte Code Engineering Library (BCEL) v5.1. BCEL is available at @@ -41,11 +41,11 @@ code is made available under the Apache Software License v1.1 === ASM v2.2.1 AspectJ includes a binary version of ASM v2.2.1 -(http://asm.objectweb.org/index.html[http://asm.objectweb.org/]) The +(https://asm.objectweb.org/index.html[https://asm.objectweb.org/]) The source code for ASM is available from the ObjectWeb download site at -http://asm.objectweb.org/download/. +https://asm.objectweb.org/download/. -The ASM license is available at http://asm.objectweb.org/license.html. +The ASM license is available at https://asm.objectweb.org/license.html. The license is also reproduced here: [source, text] diff --git a/docs/developer/traces/ajc_batchBuild_annotated.htm b/docs/developer/traces/ajc_batchBuild_annotated.htm index 50f1062c8..c151a00bd 100644 --- a/docs/developer/traces/ajc_batchBuild_annotated.htm +++ b/docs/developer/traces/ajc_batchBuild_annotated.htm @@ -1,6 +1,6 @@ <html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" -xmlns="http://www.w3.org/TR/REC-html40"> +xmlns="https://www.w3.org/TR/REC-html40"> <head> <meta http-equiv=Content-Type content="text/html; charset=windows-1252"> diff --git a/docs/developer/traces/ajc_hello_annotated.htm b/docs/developer/traces/ajc_hello_annotated.htm index d4577f302..4fde93329 100644 --- a/docs/developer/traces/ajc_hello_annotated.htm +++ b/docs/developer/traces/ajc_hello_annotated.htm @@ -1,6 +1,6 @@ <html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" -xmlns="http://www.w3.org/TR/REC-html40"> +xmlns="https://www.w3.org/TR/REC-html40"> <head> <meta http-equiv=Content-Type content="text/html; charset=windows-1252"> diff --git a/docs/devguide/ajc.adoc b/docs/devguide/ajc.adoc index 51091ee1e..5e47018e1 100644 --- a/docs/devguide/ajc.adoc +++ b/docs/devguide/ajc.adoc @@ -251,9 +251,9 @@ including these files in your existing packages instead. AspectJ is a compatible extension to the Java programming language. The AspectJ compiler adheres to the -http://java.sun.com/docs/books/jls/index.html[The Java Language +https://java.sun.com/docs/books/jls/index.html[The Java Language Specification, Second Edition] and to the -http://java.sun.com/docs/books/vmspec/index.html[The Java Virtual +https://java.sun.com/docs/books/vmspec/index.html[The Java Virtual Machine Specification, Second Edition] and runs on any Java 2 compatible platform. The code it generates runs on any Java 1.1 or later compatible platform. For more information on compatibility with Java and with diff --git a/docs/devguide/ajdoc.adoc b/docs/devguide/ajdoc.adoc index eaa0ee1b5..a1585abca 100644 --- a/docs/devguide/ajdoc.adoc +++ b/docs/devguide/ajdoc.adoc @@ -21,7 +21,7 @@ To run `ajdoc`, use one of the scripts in the AspectJ `bin` directory. The `ajdoc` implementation builds on Sun's `javadoc` command line tool, and you use it in the same way with many of the same options (`javadoc` options are not documented here; for more information on `javadoc` -usage, see the http://java.sun.com/j2se/javadoc/[Javadoc homepage].) +usage, see the https://java.sun.com/j2se/javadoc/[Javadoc homepage].) As with `ajc` (but unlike `javadoc`), you pass `ajdoc` all your aspect source files and any files containing types affected by the aspects; diff --git a/docs/faq/faq.adoc b/docs/faq/faq.adoc index f52d9d5ed..160594c93 100644 --- a/docs/faq/faq.adoc +++ b/docs/faq/faq.adoc @@ -92,7 +92,7 @@ under the https://eclipse.org/legal/cpl-v10.html[Common Public License 1.0]. The AspectJ 1.0 tools are open-source software available under the -http://www.opensource.org/licenses/mozilla1.1[Mozilla Public License +https://www.opensource.org/licenses/mozilla1.1[Mozilla Public License 1.1]. That documentation is available under a separate license that precludes for-profit or commercial redistribution. @@ -106,7 +106,7 @@ https://www.eclipse.org/legal/eplfaq.php[Eclipse Public License FAQ]. *Q:* What is the AspectJ Project? *A:* AspectJ is based on over ten years of research at -http://www.parc.xerox.com[Xerox Palo Alto Research Center] as funded by +https://www.parc.xerox.com[Xerox Palo Alto Research Center] as funded by Xerox, a U.S. Government grant (NISTATP), and a DARPA contract. It has evolved through open-source releases to a strong user community @@ -226,12 +226,12 @@ tool integrations: https://eclipse.org/ajdt * Emacs (GNU version 20.3) and XEmacs (version 21.1 on Unix and 21.4 on Windows), in the SourceForge AspectJ for Emacs project -http://aspectj4emacs.sourceforge.net +https://aspectj4emacs.sourceforge.net * JBuilder (versions 4 through 7) from Borland in the SourceForge -AspectJ for JBuilder project http://aspectj4jbuildr.sourceforge.net +AspectJ for JBuilder project https://aspectj4jbuildr.sourceforge.net * Netbeans up to 3.4 (and Sun Microsystems' Forte for Java (versions 2 and 3), Sun/One) in the SourceForge AspectJ for NetBeans project -http://aspectj4netbean.sourceforge.net +https://aspectj4netbean.sourceforge.net Finally, as mentioned above, AspectJ also supports building with Ant by providing task interfaces to the ajc and ajdoc tools. @@ -394,7 +394,7 @@ programming language innovations also do that, as will future developments. (Slides for a long talk on this topic were once available at -http://www.cs.ubc.ca/~gregor/vinst-2-17-01.zip.) +https://www.cs.ubc.ca/~gregor/vinst-2-17-01.zip.) *Q:* Is AOP restricted to domain-specific applications? @@ -679,7 +679,7 @@ dangerous code. One paper someone else just reminded me of that talks some more about this is: -http://www.cs.ubc.ca/~kdvolder/Workshops/OOPSLA2001/submissions/12-nordberg.pdf +https://www.cs.ubc.ca/~kdvolder/Workshops/OOPSLA2001/submissions/12-nordberg.pdf *Q:* Why does AspectJ permit aspects to access and add members of another type? Isn't that violating OO encapsulation? @@ -1034,12 +1034,12 @@ of developers who are working on platforms without Java 2 support. Here is a list of starting places where you might find support for your system. -* http://java.sun.com/j2se/[Java 2 Platform, Standard Edition] -* http://www-106.ibm.com/developerworks/java/jdk/[developerWorks : Java +* https://java.sun.com/j2se/[Java 2 Platform, Standard Edition] +* https://www-106.ibm.com/developerworks/java/jdk/[developerWorks : Java technology : Tools and products - Developer kits] -* http://www-124.ibm.com/developerworks/oss/jikes/[developerWorks : Open +* https://www-124.ibm.com/developerworks/oss/jikes/[developerWorks : Open Source - Jikes Project] -* http://java.sun.com/cgi-bin/java-ports.cgi[Java Platform Ports] +* https://java.sun.com/cgi-bin/java-ports.cgi[Java Platform Ports] The requirement of Java 2 support is only for _running_ the AspectJ compiler. The AspectJ compiler can be used to build programs that will @@ -1250,10 +1250,10 @@ interest, so interested developer may want to join with others in their developer communities to build the integration. * IDEA/IntelliJ has an enthusiastic community and the developers are -working on an extensibility API - http://intellij.com +working on an extensibility API - https://intellij.com * jEdit comes from a very active open-source community. * Some have suggested Codeguide from Omnicore -http://www.omnicore.com[http://www.omnicore.com/] +https://www.omnicore.com[https://www.omnicore.com/] For questions on AJDE, join the developer's list `aspectj-dev@eclipse.org`. For questions on the current IDE @@ -1406,9 +1406,9 @@ without changing intervening signatures. For more details, see link:progguide/index.html[The AspectJ Programming Guide]. In the case of `synchronized`, we have what we consider a better solution that uses around advice instead of introduction. This solution is described in -http://aspectj.org/pipermail/users/2000/000534.html[this thread (no +https://aspectj.org/pipermail/users/2000/000534.html[this thread (no longer available)] on the AspectJ users list, with some -http://aspectj.org/pipermail/users/2000/000536.html[additional comments +https://aspectj.org/pipermail/users/2000/000536.html[additional comments (no longer available)] . *Q:* I don't understand what join points exist. How can I see them? @@ -1876,7 +1876,7 @@ important when using serialization for the long-term persistence of objects. Using standard Java serialization for long-term persistence has a number of drawbacks and many developers already use alternative solutions. For one possibly standard solution, see -http://jcp.org/jsr/detail/057.jsp[Long-Term Persistence for JavaBeans +https://jcp.org/jsr/detail/057.jsp[Long-Term Persistence for JavaBeans Specification] . *Q:* How can I use AspectJ with applets? @@ -1903,7 +1903,7 @@ The above markup has worked reliably with the Java Plugin (included in the JRE 1.4.x) in IE 6, Mozilla 1.1 (Win32), and Mozilla 1.0.1 (Red Hat Linux 8.0). The following link describes how to configure Mozilla/Netscape 6.x/7.x to use the Java Plugin from a JRE/SDK -installation: http://java.sun.com/j2se/1.4.1/manual_install_linux.html. +installation: https://java.sun.com/j2se/1.4.1/manual_install_linux.html. (Thanks to Chris Bartling for this answer.) *Q:* How can I specify types for advice that captures primitives, void, @@ -2189,7 +2189,7 @@ vmparam -Xmx384m If it turns out that your project is too big to use with AJDE, your IDE may nonetheless support external commands or Ant build processes, which run outside the IDE memory space. For a JBuilder Ant plugin, some people -have directed us to http://antrunner.sourceforge.net[]. +have directed us to https://antrunner.sourceforge.net[]. *Q:* When I run, I get a `NoAspectBoundException` or a ClassNotFound message for `NoAspectBoundException`. @@ -2571,9 +2571,9 @@ compiler. Similarly, Sourceforge has projects integrating AspectJ into other development environments using the AJDE API's: -http://aspectj4emacs.sourceforge.net[AspectJ for Emacs], -http://aspectj4jbuildr.sourceforge.net[AspectJ for JBuilder], and -http://aspectj4netbean.sourceforge.net[AspectJ for NetBeans]. +https://aspectj4emacs.sourceforge.net[AspectJ for Emacs], +https://aspectj4jbuildr.sourceforge.net[AspectJ for JBuilder], and +https://aspectj4netbean.sourceforge.net[AspectJ for NetBeans]. This is the right level of separation/integration. AspectJ is available standalone, leverages an existing open-source compliant Java compiler, @@ -2709,7 +2709,7 @@ or view the source code (see xref:#Developers[AspectJ Project Development]). We hope to write papers on the bytecode weaving model used in AspectJ-1.1 if we can find the time. Erik Hilsdale and Jim Hugunin did draft a paper for AOSD 2004, now available on Jim's web -site: http://hugunin.net/papers.html Jim summarized advice weaving in +site: https://hugunin.net/papers.html Jim summarized advice weaving in the AspectJ 1.1 implementation in the https://dev.eclipse.org/mhonarc/lists/aspectj-dev/msg00519.html[following mailing-list reply]: @@ -2777,7 +2777,7 @@ you have an additional option if your application is based on the Spring framework. If you deploy in one of the supported web servers or application servers, you can avoid modifications to the startup script. Please see -http://static.springframework.org/spring/docs/2.5.x/reference/aop.html#aop-aj-ltw-spring +https://static.springframework.org/spring/docs/2.5.x/reference/aop.html#aop-aj-ltw-spring for more details. *Q:* Does AspectJ use reflection at runtime? @@ -3126,7 +3126,7 @@ from the AspectJ home page https://eclipse.org/aspectj . *Q:* How can I search the email archives or the web site? *A:* It is very effective to do a google search of the form, -http://www.google.com/search?q=site:eclipse.org+cflowbelow , and you can +https://www.google.com/search?q=site:eclipse.org+cflowbelow , and you can use the eclipse.org search at https://www.eclipse.org/search/search.cgi . You can also check the old archives available for download from the AspectJ home page https://eclipse.org/aspectj . @@ -3153,8 +3153,8 @@ without additional libraries or source files. For the mail lists, we try to follow the conventions for open-source discussions that help avoid "the tragedy of the commons." For example -conventions, see http://jakarta.apache.org/site/mail.html and -http://www.tuxedo.org/%7Eesr/faqs/smart-questions.html . +conventions, see https://jakarta.apache.org/site/mail.html and +https://www.tuxedo.org/%7Eesr/faqs/smart-questions.html . *Q:* How do I write bugs for IDE support? diff --git a/docs/pdguide/ajcore.adoc b/docs/pdguide/ajcore.adoc index 39b727286..44c937ddb 100644 --- a/docs/pdguide/ajcore.adoc +++ b/docs/pdguide/ajcore.adoc @@ -73,7 +73,7 @@ java.runtime.name=Java(TM) 2 Runtime Environment, Standard Edition sun.boot.library.path=C:\jdk1.3.1_16\jre\bin java.vm.version=1.3.1_16-b06 java.vm.vendor=Sun Microsystems Inc. -java.vendor.url=http://java.sun.com/ +java.vendor.url=https://java.sun.com/ path.separator=; java.vm.name=Java HotSpot(TM) Client VM file.encoding.pkg=sun.io @@ -110,7 +110,7 @@ java.ext.dirs=C:\jdk1.3.1_16\jre\lib\ext sun.boot.class.path=C:\jdk1.3.1_16\jre\lib\rt.jar;... java.vendor=Sun Microsystems Inc. file.separator=\ -java.vendor.url.bug=http://java.sun.com/cgi-bin/bugreport.cgi +java.vendor.url.bug=https://java.sun.com/cgi-bin/bugreport.cgi sun.io.unicode.encoding=UnicodeLittle sun.cpu.endian=little user.region=GB diff --git a/docs/pdguide/trace.adoc b/docs/pdguide/trace.adoc index d9c9de1d9..2ce9eec74 100644 --- a/docs/pdguide/trace.adoc +++ b/docs/pdguide/trace.adoc @@ -25,7 +25,7 @@ can then be attached to the bug report. === Configuring Tracing When available (Java 5 or later) AspectJ will use the -http://java.sun.com/j2se/1.5.0/docs/guide/logging/index.html[java.util.logging] +https://java.sun.com/j2se/1.5.0/docs/guide/logging/index.html[java.util.logging] infrastructure configured using a `logging.properties` file. By default only error and fatal events will be logged but less severe warnings as well as fine-grained method entry and exit events can be obtained using diff --git a/docs/release/README-1.1.adoc b/docs/release/README-1.1.adoc index f78e4ce70..eb1a63a43 100644 --- a/docs/release/README-1.1.adoc +++ b/docs/release/README-1.1.adoc @@ -268,9 +268,9 @@ because they came under different licenses. All of AspectJ 1.1 is licensed under the CPL 1.0, so the tools, Ant tasks, and documentation are all in one distribution available from https://eclipse.org/aspectj. To retain their MPL 1.1 license, Ajde for -http://aspectj4emacs.sourceforge.net/[Emacs], -http://aspectj4netbean.sourceforge.net/[NetBeans] and -http://aspectj4jbuildr.sourceforge.net/[JBuilder] are now independent +https://aspectj4emacs.sourceforge.net/[Emacs], +https://aspectj4netbean.sourceforge.net/[NetBeans] and +https://aspectj4jbuildr.sourceforge.net/[JBuilder] are now independent SourceForge projects. ''''' diff --git a/docs/release/README-1.6.10.adoc b/docs/release/README-1.6.10.adoc index 31a44ab8f..52b8a03eb 100644 --- a/docs/release/README-1.6.10.adoc +++ b/docs/release/README-1.6.10.adoc @@ -32,7 +32,7 @@ specify: If I can get enough positive feedback about this option, it will be made the default. For a more detailed write up, check out the blog post: -http://andrewclement.blogspot.com/2010/07/ajdt-memory-usage-reduction.html +https://andrewclement.blogspot.com/2010/07/ajdt-memory-usage-reduction.html === Runtime changes diff --git a/docs/release/README-1.6.11.adoc b/docs/release/README-1.6.11.adoc index b2e982c71..9d2f281be 100644 --- a/docs/release/README-1.6.11.adoc +++ b/docs/release/README-1.6.11.adoc @@ -45,7 +45,7 @@ issues have now all been sorted out in 1.6.11.M2. More changes have been made for users trying out the -Xset:minimalModel=true option to try and reduce the memory used in their Eclipse/AJDT configurations. This option is discussed in detail -http://andrewclement.blogspot.com/2010/07/ajdt-memory-usage-reduction.html[here]. +https://andrewclement.blogspot.com/2010/07/ajdt-memory-usage-reduction.html[here]. It now saves even more memory. Also, previously the amount of memory it recovered depended on compilation order (which the user has no control over), but now it is insensitive to ordering and should always recover diff --git a/docs/release/README-1.6.4.adoc b/docs/release/README-1.6.4.adoc index 8529d9985..4868f5d00 100644 --- a/docs/release/README-1.6.4.adoc +++ b/docs/release/README-1.6.4.adoc @@ -113,7 +113,7 @@ Under https://bugs.eclipse.org/bugs/show_bug.cgi?id=246393[bug 246393] the problem has been addressed where sometimes spurious errors would appear throughout the editor for a file in AJDT when just one single simple syntax errors exists. More detail on this problem can be found -http://andrewclement.blogspot.com/2009/02/aspectj-fixing-reverse-cascade-errors.html[here]. +https://andrewclement.blogspot.com/2009/02/aspectj-fixing-reverse-cascade-errors.html[here]. ''''' diff --git a/docs/release/README-1.6.7.adoc b/docs/release/README-1.6.7.adoc index 464f34006..c2b102027 100644 --- a/docs/release/README-1.6.7.adoc +++ b/docs/release/README-1.6.7.adoc @@ -13,7 +13,7 @@ one of your pointcuts that is hurting your weaving performance. In 1.6.7 it is possible to turn on timers for pointcuts. These timers show the time spent in the weaver matching the pointcut components against join points. The details on this feature are here: -http://andrewclement.blogspot.com/2009/11/aspectj-profiling-pointcut-matching.html[Profiling +https://andrewclement.blogspot.com/2009/11/aspectj-profiling-pointcut-matching.html[Profiling pointcut matching]. Basically by turning on the options '-timers -verbose' on the command line (or via Ant), output will be produced that looks a little like this: @@ -36,7 +36,7 @@ Time:4ms (jps:#662) matching against It shows the component, the number of joinpoints (jps) the weaver attempted to match it against and how many milliseconds were spent performing those matches. The options can also be turned on -http://contraptionsforprogramming.blogspot.com/2009/11/getting-aspectj-pointcut-matching-timer.html[]through +https://contraptionsforprogramming.blogspot.com/2009/11/getting-aspectj-pointcut-matching-timer.html[]through AJDT. Armed with this information you can optimize your pointcuts or post on the mailing list asking for help. The timers can even be turned on for load time weaving. @@ -48,7 +48,7 @@ be done on the matching algorithms. These have remained unchanged for a few years, but in 1.6.7 have received a bit of an overhaul. 'Fast match' has been implemented for the execution() pointcut, drastically reducing weave times for heavy users of execution - more details -http://andrewclement.blogspot.com/2009/11/aspectj-how-much-faster-is-aspectj-167.html[here]. +https://andrewclement.blogspot.com/2009/11/aspectj-how-much-faster-is-aspectj-167.html[here]. The pointcut cost calculator (which is used to sort pointcuts to optimize matching speed) has been reviewed and after determining that this() ought to be considered cheaper than call() - any user combining @@ -67,7 +67,7 @@ The processing of include/exclude entries in aop.xml has been rewritten. It now optimizes for many more common patterns. If a pattern is optimized then there is no need to ask the weaver to do an expensive include/exclude match. More details -http://andrewclement.blogspot.com/2009/12/aspectj-167-and-faster-load-time.html[here]. +https://andrewclement.blogspot.com/2009/12/aspectj-167-and-faster-load-time.html[here]. == Less need to tweak options for load time weaving @@ -87,7 +87,7 @@ will now do the right thing out of the box. All those changes above, and some additional tweaks, mean we are now using less memory than ever before and getting things done more quickly. -http://andrewclement.blogspot.com/2009/12/aspectj-167-and-faster-load-time.html[This +https://andrewclement.blogspot.com/2009/12/aspectj-167-and-faster-load-time.html[This post] discusses the details. From that article, the graph below shows the speed and memory consumption of the various AspectJ 1.6 releases when load time weaving a small application loading in Tomcat. For each diff --git a/docs/release/README-1.6.9.adoc b/docs/release/README-1.6.9.adoc index a7923cf01..38d720200 100644 --- a/docs/release/README-1.6.9.adoc +++ b/docs/release/README-1.6.9.adoc @@ -82,7 +82,7 @@ Here is an example, 'AspectA' will switch itself off if the type === Reduction in class file sizes: https://bugs.eclipse.org/bugs/show_bug.cgi?id=312839[312839] More details here: -http://andrewclement.blogspot.com/2010/05/aspectj-size-is-important.html +https://andrewclement.blogspot.com/2010/05/aspectj-size-is-important.html but basically some work has been done to improve the serialized form of aspects. As an example, a compiled Roo petclinic sample (which uses lots of aspects and ITDs) is down from 1Meg (AspectJ 1.6.9m2) to 630k @@ -110,7 +110,7 @@ Overweaving can cope with 'other tools' modifying the bytecode in between AspectJ weaves, whereas reweaving cannot. More details are in the related bugzilla https://bugs.eclipse.org/bugs/show_bug.cgi?id=293450[293450] and in this -http://andrewclement.blogspot.com/2010/05/aspectj-overweaving.html[blog +https://andrewclement.blogspot.com/2010/05/aspectj-overweaving.html[blog article]. A weaver is switched into overweaving mode by the option -Xset:overWeaving=true - which can be specified on the command line or in the weaver options section of aop.xml. There is still more work to be @@ -285,7 +285,7 @@ magic: <repository> <id>maven.springframework.org</id> <name>SpringSource snapshots</name> - <url>http://maven.springframework.org/snapshot</url> + <url>https://maven.springframework.org/snapshot</url> </repository> .... diff --git a/docs/release/changes.adoc b/docs/release/changes.adoc index 5a790a0ff..7793ca6ac 100644 --- a/docs/release/changes.adoc +++ b/docs/release/changes.adoc @@ -423,17 +423,17 @@ synch with resources on disk. JBuilder 7 is now supported. All known bugs have been fixed including: -* http://aspectj.org/bugs/resolved?id=787[787] AJDE for JBuilder throws +* https://aspectj.org/bugs/resolved?id=787[787] AJDE for JBuilder throws exception given non-existent file -* http://aspectj.org/bugs/resolved?id=788[788] Label too small in error +* https://aspectj.org/bugs/resolved?id=788[788] Label too small in error message -* http://aspectj.org/bugs/resolved?id=789[789] Index-out-of-bounds +* https://aspectj.org/bugs/resolved?id=789[789] Index-out-of-bounds exception in JBuilder AJDE -* http://aspectj.org/bugs/resolved?id=792[792] Required libraries +* https://aspectj.org/bugs/resolved?id=792[792] Required libraries disappear from JBuilder 6 -* http://aspectj.org/bugs/resolved?id=795[795] Unable to compile open +* https://aspectj.org/bugs/resolved?id=795[795] Unable to compile open tools -* http://aspectj.org/bugs/resolved?id=802[802] AJDE loses current +* https://aspectj.org/bugs/resolved?id=802[802] AJDE loses current (cursor) position in file when switching files In addition, thanks to user feedback that indicated trouble building @@ -443,9 +443,9 @@ with itself. [[_1_0_6ajdoc]] == Ajdoc -* Fixed http://aspectj.org/bugs/resolved?id=790[790] aspect code +* Fixed https://aspectj.org/bugs/resolved?id=790[790] aspect code comments suppressed by fix to bug 710 -* Known problems: http://aspectj.org/bugs/ajdoc +* Known problems: https://aspectj.org/bugs/ajdoc ''''' @@ -545,14 +545,14 @@ your path, and the class that you expect to execute on your classpath. Bug fixes: -* http://aspectj.org/bugs/resolved?id=710[710 - compiler-generated +* https://aspectj.org/bugs/resolved?id=710[710 - compiler-generated constructor shown with class comment] -* http://aspectj.org/bugs/resolved?id=712[712 - comments lost in aspect +* https://aspectj.org/bugs/resolved?id=712[712 - comments lost in aspect docs for methods or constructors declared on other types.] -* http://aspectj.org/bugs/resolved?id=719[719 - poor support for @link, +* https://aspectj.org/bugs/resolved?id=719[719 - poor support for @link, @see tags] -* http://aspectj.org/bugs/resolved?id=742[742 - crash with @see tag] -* http://aspectj.org/bugs/resolved?id=751[751 - error loading doclet +* https://aspectj.org/bugs/resolved?id=742[742 - crash with @see tag] +* https://aspectj.org/bugs/resolved?id=751[751 - error loading doclet resource] [[_1_0_5anttasks]] @@ -560,7 +560,7 @@ resource] Bug fixes: -* http://aspectj.org/bugs/resolved?id=730[730 - document all supported +* https://aspectj.org/bugs/resolved?id=730[730 - document all supported ajc flags] ''''' @@ -657,7 +657,7 @@ J2SE 1.3 be on the classpath. * Repackaged to fit into the AspectJ product directory - e.g., `aspectj-ant.jar` moved to `lib` as expected by `examples/build.xml`. -* Fixed bugs, esp. http://aspectj.org/bugs/resolved?id=682[682]: Throw +* Fixed bugs, esp. https://aspectj.org/bugs/resolved?id=682[682]: Throw BuildException if failonerror and ajdoc detects misconfiguration. [[_1_0_4doc]] @@ -712,9 +712,9 @@ reported in 1.0.1. == Compiler * Official support for `-source 1.4` option to compile new -http://java.sun.com/j2se/1.4/docs/guide/lang/assert.html[1.4 +https://java.sun.com/j2se/1.4/docs/guide/lang/assert.html[1.4 assertions]. This makes ajc completely compatible with j2se-1.4. -* Implementation of http://jcp.org/jsr/detail/45.jsp[JSR-45 Debugging +* Implementation of https://jcp.org/jsr/detail/45.jsp[JSR-45 Debugging Support for Other Languages] so that debuggers which correctly implement this specification will be able to accurately debug any AspectJ program at a source code level. We are not currently aware of any debuggers that @@ -726,27 +726,27 @@ type patterns used in pcds have no bindings. We are very interested in feedback on the usefulness and suggested improvements for this feature. * Several significant bugs in the implementation of around advice have been fixed. These include issues with -http://aspectj.org/jitterbug/aspectj-bugs/resolved?id=632[dynamic +https://aspectj.org/jitterbug/aspectj-bugs/resolved?id=632[dynamic tests], with -http://aspectj.org/jitterbug/aspectj-bugs/resolved?id=620[complicated +https://aspectj.org/jitterbug/aspectj-bugs/resolved?id=620[complicated local types in an around body], and with -http://aspectj.org/jitterbug/aspectj-bugs/resolved?id=636[capturing +https://aspectj.org/jitterbug/aspectj-bugs/resolved?id=636[capturing proceed in a closure]. * All but two -(http://aspectj.org/jitterbug/aspectj-bugs/compiler?id=626[1], -http://aspectj.org/jitterbug/aspectj-bugs/compiler?id=645[2]) verified +(https://aspectj.org/jitterbug/aspectj-bugs/compiler?id=626[1], +https://aspectj.org/jitterbug/aspectj-bugs/compiler?id=645[2]) verified bugs in 1.0.1 have been fixed. The two outstanding bugs have relatively easy work-arounds. Thanks as usual to everyone who submitted a bug report. * We no longer use the `SYNTHETIC` attribute to label declarations added by the aspectj compiler. We were using this attribute in compliance with -http://java.sun.com/docs/books/vmspec/2nd-edition/html/ClassFile.doc.html#80128[the +https://java.sun.com/docs/books/vmspec/2nd-edition/html/ClassFile.doc.html#80128[the JVM Specification]; however, we've found that many tools expect this attribute to only be used for the narrow purpose of implementing Java's inner classes and that using it for other synthetic members can confuse them. This led to problems both -http://aspectj.org/jitterbug/aspectj-bugs/resolved?id=649[with javap] -and http://aspectj.org/jitterbug/aspectj-bugs/resolved?id=646[with +https://aspectj.org/jitterbug/aspectj-bugs/resolved?id=649[with javap] +and https://aspectj.org/jitterbug/aspectj-bugs/resolved?id=646[with javac]. * Changes required adding runtime classes, so please compile and run using the latest `aspectjrt.jar` @@ -801,7 +801,7 @@ This release fixes a significant performance issue in the compiler, reported by Rich Price, that could lead to extremely long compiles in systems with many aspects and classes. Several other small bugs related to reporting compilation errors have also been fixed, see -http://aspectj.org/jitterbug/aspectj-bugs/resolved?id=610[this bug +https://aspectj.org/jitterbug/aspectj-bugs/resolved?id=610[this bug report] for an example. A new experimental flag has been added, `-XaddSafePrefix`, that will @@ -855,10 +855,10 @@ below: which are also produced by other compilers) that caused verify errors when dealing with nested try-finally and synchronized statements. These are now fixed. More details are available -http://aspectj.org/jitterbug/aspectj-bugs/resolved?id=601[here] and -http://aspectj.org/jitterbug/aspectj-bugs/resolved?id=595[here] +https://aspectj.org/jitterbug/aspectj-bugs/resolved?id=601[here] and +https://aspectj.org/jitterbug/aspectj-bugs/resolved?id=595[here] * Jan Hannemann submitted a -http://aspectj.org/jitterbug/aspectj-bugs/resolved?id=600[succint and +https://aspectj.org/jitterbug/aspectj-bugs/resolved?id=600[succint and clear bug report] for a difficult intermittant bug. The bug led to the compiler sometimes generating illegal code when introduced methods on a class overrode introduced methods on an interface implemented by that @@ -886,7 +886,7 @@ visibility === AJBrowser * Documentation for the browser is now available at -http://aspectj.org/docs +https://aspectj.org/docs === Emacs Support: aspectj-mode and AJDEE @@ -918,11 +918,11 @@ There have been several minor clarifications/changes to the language. * Thanks to Robin Green for suggesting that we could relax the rules for inheriting multiple concrete members in order to allow those unambiguous cases where one member has already overridden the other. -http://aspectj.org/pipermail/users/2001/001289.html[More details...] +https://aspectj.org/pipermail/users/2001/001289.html[More details...] * Ron Bodkin encouraged us to examine the details of privileged aspects more closely. This led to several small improvements and clarifications to this language feature. -http://aspectj.org/pipermail/users/2001/001258.html[More details...] +https://aspectj.org/pipermail/users/2001/001258.html[More details...] [[_1_0rc3compiler]] == Compiler @@ -936,14 +936,14 @@ for some references to interface fields result in verify errors on certain JVMs. While this is a known bug in those JVMs, we've modified ajc to be bug compatible with all the other Java compilers out there to work-around this JVM bug. -http://aspectj.org/jitterbug/aspectj-bugs/resolved?id=551[More +https://aspectj.org/jitterbug/aspectj-bugs/resolved?id=551[More details...] * Frank Hunleth discovered a similar bug where ajc's correct bytecodes could lead to essentially random method dispath due to a bad bug in the 1.3.0 JVM from Sun. Even though this bug was fixed in the 1.3.1 and 1.2.2 JVMs, we have introduced the appropriate work-around in ajc's code generation. -http://aspectj.org/jitterbug/aspectj-bugs/resolved?id=580[More +https://aspectj.org/jitterbug/aspectj-bugs/resolved?id=580[More details...] * Thomas Haug (as well as several other members of his group) reported a problem with name binding where ajc was behaving differently than javac. @@ -952,7 +952,7 @@ that conflicted with his package names. The JLS doesn't clearly specify which of these two behaviors is correct. Nevertheless, ajc has been changed to treat packages more like javac does in order to minimize this sort of problem in the future. -http://aspectj.org/jitterbug/aspectj-bugs/resolved?id=574[More +https://aspectj.org/jitterbug/aspectj-bugs/resolved?id=574[More details...] * Several "real" bugs in ajc were also reported and fixed. Toby Allsopp gets credit for reporting two of them. The most interesting of these diff --git a/docs/sandbox/trails/links.adoc b/docs/sandbox/trails/links.adoc index 7ec1e7459..0e58a0403 100644 --- a/docs/sandbox/trails/links.adoc +++ b/docs/sandbox/trails/links.adoc @@ -13,7 +13,7 @@ https://eclipse.org/aspectj *"AspectJ in Action"* by Ramnivas Laddad has sample code including four patterns: the worker object creation pattern, the exception introduction pattern, the participant pattern, and the wormhole pattern. -Find the code at http://www.manning.com/laddad/. +Find the code at https://www.manning.com/laddad/. In the OOPSLA 2002 paper *"Design Pattern Implementation in Java and AspectJ"*, Jan Hannemann and Gregor Kiczales discuss the implementation @@ -21,7 +21,7 @@ in AspectJ of 23 of the traditional "gang of four" design patterns (from the book "Design Patterns: elements of reusable object-oriented software" by Gamma, Helm, Johnson, and Vlissides). Their paper and the code for those patterns are available from -http://www.cs.ubc.ca/~jan/AODPs/. The code is also available from the +https://www.cs.ubc.ca/~jan/AODPs/. The code is also available from the AspectJ web site as ubc-design-patterns.zip. The latest version is checked into the CVS repository along with other sample code at `org.aspectj/modules/docs/sandbox/ubc-design-patterns`. For instructions @@ -33,7 +33,7 @@ source bug tracking application that demonstrates use of Aspect-Oriented Programming (AOP) with AspectJ. It uses AOP pragmatically to provide systematic support for technical, middleware, and business concerns. -The http://sourceforge.net/projects/cricketcage/[*CricketCage project*] +The https://sourceforge.net/projects/cricketcage/[*CricketCage project*] automatically creates JUnit TestCases for repeatable bugs and test scenarios. Include Cricket Cage's AspectJ code to install a code generator, then run the program to generate the TestCase. diff --git a/docs/sandbox/trails/myeclipseide.adoc b/docs/sandbox/trails/myeclipseide.adoc index 372591131..87f29fcd8 100644 --- a/docs/sandbox/trails/myeclipseide.adoc +++ b/docs/sandbox/trails/myeclipseide.adoc @@ -2,7 +2,7 @@ _Last updated: 2003-07-08 by wisberg_ -MyEclipseIde (http://www.myeclipseide.com/[http://www.myeclipseide.com]) +MyEclipseIde (https://www.myeclipseide.com/[https://www.myeclipseide.com]) aims to make it easy to develop J2EE applications using Eclipse. AJDT (https://eclipse.org/ajdt) is an Eclipse plug-in that supports AspectJ. diff --git a/docs/sandbox/ubc-design-patterns/docs/readme.adoc b/docs/sandbox/ubc-design-patterns/docs/readme.adoc index f485a54f0..9293b3a97 100644 --- a/docs/sandbox/ubc-design-patterns/docs/readme.adoc +++ b/docs/sandbox/ubc-design-patterns/docs/readme.adoc @@ -17,7 +17,7 @@ Within the ajdoc documentation, we tried to separate type names used in our exam == Questions, feedback, suggestions, etc. -The AODP web page is http://www.cs.ubc.ca/labs/spl/aodp.html +The AODP web page is https://www.cs.ubc.ca/labs/spl/aodp.html Please send all questions, feedback, and suggestions to Jan Hannemann (jan [AT] cs.ubc.ca). We are very much interested in improving our code. Please do not hesitate to drop us a line. diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/abstractFactory/aspectj/ComponentFactory.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/abstractFactory/aspectj/ComponentFactory.java index 669aa042d..ba3c7f043 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/abstractFactory/aspectj/ComponentFactory.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/abstractFactory/aspectj/ComponentFactory.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.abstractFactory.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,11 +15,11 @@ package ca.ubc.cs.spl.aspectPatterns.examples.abstractFactory.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ import javax.swing.JLabel; @@ -32,33 +32,33 @@ import javax.swing.JButton; * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 01/20/04 - * + * */ public interface ComponentFactory { - + /** - * Creates factory-specific <code>JLabel</code> products. + * Creates factory-specific <code>JLabel</code> products. * * @return the factory-specific <code>JLabel</code> */ - - public JLabel createLabel(); + + public JLabel createLabel(); /** - * Creates factory-specific <code>JButton</code> products. + * Creates factory-specific <code>JButton</code> products. * * @return the factory-specific <code>JButton</code> */ - - public JButton createButton(String label); + public JButton createButton(String label); - /** + + /** * Returns the name of the factory. * * @return the name of the factory */ - + public String getName(); -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/abstractFactory/aspectj/ComponentFactoryImplementation.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/abstractFactory/aspectj/ComponentFactoryImplementation.java index 4a983c8c7..18e5f8d6a 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/abstractFactory/aspectj/ComponentFactoryImplementation.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/abstractFactory/aspectj/ComponentFactoryImplementation.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.abstractFactory.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,20 +15,20 @@ package ca.ubc.cs.spl.aspectPatterns.examples.abstractFactory.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ -import javax.swing.JLabel; -import javax.swing.JButton; +import javax.swing.JLabel; +import javax.swing.JButton; /** - * Illustrates AspectJ's inter-type declarations: a default implementation - * of the two factory methods declared in the <code>AbstractFactory</code> - * interface is provided here. + * Illustrates AspectJ's inter-type declarations: a default implementation + * of the two factory methods declared in the <code>AbstractFactory</code> + * interface is provided here. * * @author Jan Hannemann * @author Gregor Kiczales @@ -40,24 +40,24 @@ public aspect ComponentFactoryImplementation { /** * Provides a default implementation for all <code>ComponentFactories - * </code> for the <code>createLabel()</code> method. + * </code> for the <code>createLabel()</code> method. * * @return a regular <code>JLabel</code> */ - + public JLabel ComponentFactory.createLabel() { return new JLabel("This Label was created by " +getName()); } - + /** * Provides a default implementation for all <code>ComponentFactories - * </code> for the <code>createButton()</code> method. + * </code> for the <code>createButton()</code> method. * * @param a label for the new <code>JButton</code> * @return a regular <code>JButton</code> */ - + public JButton ComponentFactory.createButton(String label) { return new JButton(label); - } -}
\ No newline at end of file + } +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/abstractFactory/aspectj/Display.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/abstractFactory/aspectj/Display.java index 2575cf817..365cbe813 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/abstractFactory/aspectj/Display.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/abstractFactory/aspectj/Display.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.abstractFactory.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,17 +15,17 @@ package ca.ubc.cs.spl.aspectPatterns.examples.abstractFactory.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ - + import javax.swing.JPanel; import javax.swing.JFrame; -import javax.swing.JLabel; -import javax.swing.JButton; +import javax.swing.JLabel; +import javax.swing.JButton; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.awt.event.ActionListener; @@ -39,21 +39,21 @@ import java.awt.event.ActionEvent; * @version 1.1, 01/20/04 * */ - -public class Display extends JFrame { - + +public class Display extends JFrame { + /** * Sets up the frame with a label and a button created by the respective - * <i>ConcreteFactory</i>. Both button and frame receive their appropriate + * <i>ConcreteFactory</i>. Both button and frame receive their appropriate * listeners to close the frame when either the button is clicked or * the frame is closing. * * @param factory the concrete factory to use for creating GUI elements - */ + */ Display(ComponentFactory factory) { - super("New GUI"); - JLabel label = factory.createLabel(); + super("New GUI"); + JLabel label = factory.createLabel(); JButton button = factory.createButton("OK"); button.addActionListener(new myActionListener(this)); JPanel panel = new JPanel(); @@ -61,43 +61,43 @@ public class Display extends JFrame { panel.add(button); this.getContentPane().add(panel); this.pack(); - this.setVisible(true); + this.setVisible(true); this.addWindowListener(new myWindowListener(this)); } - + /** - * Adds a window listener that closes the frame on demand + * Adds a window listener that closes the frame on demand */ private class myWindowListener extends WindowAdapter { - + Display display = null; - + protected myWindowListener(Display display) { super(); - this.display = display; + this.display = display; } - + public void windowClosing(WindowEvent e) { display.setVisible(false); } } - + /** - * Adds a button listener that closes the frame on demand + * Adds a button listener that closes the frame on demand */ private class myActionListener implements ActionListener { - + Display display; - + protected myActionListener(Display display) { super(); this.display = display; } - - public void actionPerformed(ActionEvent e) { + + public void actionPerformed(ActionEvent e) { display.setVisible(false); } } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/abstractFactory/aspectj/FramedFactory.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/abstractFactory/aspectj/FramedFactory.java index 2666d1754..77eed1770 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/abstractFactory/aspectj/FramedFactory.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/abstractFactory/aspectj/FramedFactory.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.abstractFactory.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,15 +15,15 @@ package ca.ubc.cs.spl.aspectPatterns.examples.abstractFactory.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ - -import javax.swing.JLabel; + +import javax.swing.JLabel; import javax.swing.border.Border; import javax.swing.BorderFactory; import javax.swing.JButton; @@ -31,7 +31,7 @@ import javax.swing.JButton; /** * This <i>Concrete Factory</i> implements the <code>ComcreteFactory</code> * interface to provide framed Swing GUI components. - * + * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 01/20/04 @@ -41,11 +41,11 @@ import javax.swing.JButton; public class FramedFactory implements ComponentFactory { /** - * Factroy method to create framed <code>JLabel</code> objects. + * Factroy method to create framed <code>JLabel</code> objects. * * @return the framed <code>JLabel</code> */ - + public JLabel createLabel() { JLabel label = new JLabel("This Label was created by " + getName()); @@ -53,32 +53,32 @@ public class FramedFactory implements ComponentFactory { Border loweredbevel = BorderFactory.createLoweredBevelBorder(); label.setBorder(BorderFactory.createCompoundBorder( raisedbevel, loweredbevel)); - + return label; - } - + } + /** - * Factory method to create framed <code>JButton</code> objects. + * Factory method to create framed <code>JButton</code> objects. * * @param the label for the new <code>JButton</code> * @return the framed <code>JButton</code> */ - + public JButton createButton(String label) { JButton button = new JButton(label); Border raisedbevel = BorderFactory.createRaisedBevelBorder(); Border loweredbevel = BorderFactory.createLoweredBevelBorder(); button.setBorder(BorderFactory.createCompoundBorder(raisedbevel, loweredbevel)); return button; - } + } - /** + /** * Returns the name of the factory. * * @return the name of the factory */ - + public String getName() { return "Framed Factory"; - } -}
\ No newline at end of file + } +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/abstractFactory/aspectj/Main.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/abstractFactory/aspectj/Main.java index 8cff6d26d..e20d4a27d 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/abstractFactory/aspectj/Main.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/abstractFactory/aspectj/Main.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.abstractFactory.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,17 +15,17 @@ package ca.ubc.cs.spl.aspectPatterns.examples.abstractFactory.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ import javax.swing.JFrame; import javax.swing.JRadioButton; import javax.swing.JButton; -import javax.swing.JPanel; +import javax.swing.JPanel; import javax.swing.ButtonGroup; import java.awt.event.WindowAdapter; @@ -43,22 +43,22 @@ import java.awt.event.ActionListener; * </blockquote> * * As an example scenario, our abstract factory interface defines two - * factory methods, <code>createLabel()</code> and - * <code>createButton()</code>, that create related products - * (here: Swing GUI elements). + * factory methods, <code>createLabel()</code> and + * <code>createButton()</code>, that create related products + * (here: Swing GUI elements). * - * The driver is a GUI that allows the user to choose between the two + * The driver is a GUI that allows the user to choose between the two * concrete factories (<code>RegularFactory</code> and <code>FramedFactory * </code>), and creates a new GUI with elements from the respective factory. * <p> - * + * * <code>RegularFactory</code> creates standard Swing GUI elements, while * <code>FramedFactory</code> produces elements which are framed. * * <P><i>This is the AspectJ implementation. </i><p> * * We decided to implement <code>AbstractFactory</code> as an interace, - * not an abstract class. In the AspectJ solution, we can still define + * not an abstract class. In the AspectJ solution, we can still define * default implementations for the interface methods. This approach uses * AspectJ's inter-type declaration mechanism. * @@ -73,27 +73,27 @@ import java.awt.event.ActionListener; * @version 1.1, 01/20/04 * */ -public class Main +public class Main { /** * a concrete factory that creates regular GUI components */ - + private static ComponentFactory factory1 = new RegularFactory(); - + /** * a concrete factory that creates framed GUI components */ - + private static ComponentFactory factory2 = new FramedFactory(); /** * stores the currently selected factory */ - + private static ComponentFactory factory = factory1; - - + + /** * Creates the initial GUI that allows the user to choose a factory * and generate a new GUI with the elements that the respective @@ -101,7 +101,7 @@ public class Main * * @return a <code>JPanel</code> containing the GUI */ - + private static JPanel createGUI() { ActionListener radioListener = new ActionListener() { @@ -110,49 +110,49 @@ public class Main else factory = factory2; } }; - + JPanel panel = new JPanel(); - JRadioButton factoryButton1 = new JRadioButton("use Factory 1"); + JRadioButton factoryButton1 = new JRadioButton("use Factory 1"); JRadioButton factoryButton2 = new JRadioButton("use Factory 2"); factoryButton1.setActionCommand("factory1"); - factoryButton2.setActionCommand("factory2"); + factoryButton2.setActionCommand("factory2"); factoryButton1.addActionListener(radioListener); - factoryButton2.addActionListener(radioListener); + factoryButton2.addActionListener(radioListener); JButton create = new JButton("Create GUI"); - + ButtonGroup choices = new ButtonGroup(); - + choices.add(factoryButton1); choices.add(factoryButton2); - + create.addActionListener( new ActionListener() { - public void actionPerformed(ActionEvent e) { + public void actionPerformed(ActionEvent e) { Display display = new Display(factory); } }); - + panel.add(factoryButton1); panel.add(factoryButton2); panel.add(create); - + return panel; } /** * Implements the driver for this design pattern example. It sets up * the initial GUI. - */ - + */ + public static void main(String[] args) { JFrame frame = new JFrame("Abstract Factory Demo"); frame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) {System.exit(0);} - }); - + }); + frame.getContentPane().add(createGUI()); - + frame.pack(); frame.setVisible(true); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/abstractFactory/aspectj/RegularFactory.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/abstractFactory/aspectj/RegularFactory.java index 573f89571..9701d35fa 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/abstractFactory/aspectj/RegularFactory.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/abstractFactory/aspectj/RegularFactory.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.abstractFactory.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,44 +15,44 @@ package ca.ubc.cs.spl.aspectPatterns.examples.abstractFactory.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code please see - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ import javax.swing.JLabel; -import javax.swing.JButton; +import javax.swing.JButton; /** - * This <i>Concrete Factory</i> implements the - * <code>AbstractFactory</code> interface to provide + * This <i>Concrete Factory</i> implements the + * <code>AbstractFactory</code> interface to provide * regular Swing GUI components. - * + * * The factroy methods <code>createLabel()</code> and <create>Button()</code> * do not need to be defined here, they recieve their implementation from - * the inter-type declarations in aspect + * the inter-type declarations in aspect * <code>AbstractFactroyEnhancement</code>. - * - * This is done so that future concrete factories can reuse the + * + * This is done so that future concrete factories can reuse the * implementations of the factory methods and will only have to specify those * that differ from the default ones. - * + * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 01/20/04 * */ public class RegularFactory implements ComponentFactory { - - /** + + /** * Returns the name of the factory. * * @return the name of the factory */ - + public String getName() { return ("Regular Factory"); - } -}
\ No newline at end of file + } +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/abstractFactory/java/ComponentFactory.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/abstractFactory/java/ComponentFactory.java index ea2036430..df069990a 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/abstractFactory/java/ComponentFactory.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/abstractFactory/java/ComponentFactory.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.abstractFactory.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,11 +15,11 @@ package ca.ubc.cs.spl.aspectPatterns.examples.abstractFactory.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ import javax.swing.JLabel; @@ -32,32 +32,32 @@ import javax.swing.JButton; * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 01/20/04 - * + * */ public interface ComponentFactory { - + /** - * Creates factory-specific <code>JLabel</code> products. + * Creates factory-specific <code>JLabel</code> products. * * @return the factory-specific <code>JLabel</code> */ - - public JLabel createLabel(); + + public JLabel createLabel(); /** - * Creates factory-specific <code>JButton</code> products. + * Creates factory-specific <code>JButton</code> products. * * @return the factory-specific <code>JButton</code> */ - - public JButton createButton(String label); + public JButton createButton(String label); - /** + + /** * Returns the name of the factory. * * @return the name of the factory */ - + public String getName(); -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/abstractFactory/java/Display.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/abstractFactory/java/Display.java index 40e2b5b48..432557c9c 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/abstractFactory/java/Display.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/abstractFactory/java/Display.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.abstractFactory.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,17 +15,17 @@ package ca.ubc.cs.spl.aspectPatterns.examples.abstractFactory.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ - + import javax.swing.JPanel; import javax.swing.JFrame; -import javax.swing.JLabel; -import javax.swing.JButton; +import javax.swing.JLabel; +import javax.swing.JButton; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.awt.event.ActionListener; @@ -37,22 +37,22 @@ import java.awt.event.ActionEvent; * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 01/20/04 - * + * */ -public class Display extends JFrame { - +public class Display extends JFrame { + /** * Sets up the frame with a label and a button created by the respective - * concrete factories. Both button and frame receive their appropriate + * concrete factories. Both button and frame receive their appropriate * listeners to close the frame when either the button is clicked or * the frame is closing. * * @param factory the factory to create GUI elements - */ + */ public Display(ComponentFactory factory) { - super("New GUI"); - JLabel label = factory.createLabel(); + super("New GUI"); + JLabel label = factory.createLabel(); JButton button = factory.createButton("OK"); button.addActionListener(new myActionListener(this)); JPanel panel = new JPanel(); @@ -60,43 +60,43 @@ public class Display extends JFrame { panel.add(button); this.getContentPane().add(panel); this.pack(); - this.setVisible(true); + this.setVisible(true); this.addWindowListener(new myWindowListener(this)); } - + /** - * Adds a window listener that closes the frame on demand + * Adds a window listener that closes the frame on demand */ - + private class myWindowListener extends WindowAdapter { - + Display display = null; - + protected myWindowListener(Display display) { super(); - this.display = display; + this.display = display; } - + public void windowClosing(WindowEvent e) { display.setVisible(false); } } - + /** - * Adds a button listener that closes the frame on demand + * Adds a button listener that closes the frame on demand */ private class myActionListener implements ActionListener { - + Display display; - + protected myActionListener(Display display) { super(); this.display = display; } - - public void actionPerformed(ActionEvent e) { + + public void actionPerformed(ActionEvent e) { display.setVisible(false); } } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/abstractFactory/java/FramedFactory.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/abstractFactory/java/FramedFactory.java index 0a2f5b4b8..53c9328b7 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/abstractFactory/java/FramedFactory.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/abstractFactory/java/FramedFactory.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.abstractFactory.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,23 +15,23 @@ package ca.ubc.cs.spl.aspectPatterns.examples.abstractFactory.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ - -import javax.swing.JLabel; + +import javax.swing.JLabel; import javax.swing.border.Border; import javax.swing.BorderFactory; import javax.swing.JButton; /** - * This <i>Concrete Factory</i> implements the - * <code>ComponentFactory</code> interface to provide + * This <i>Concrete Factory</i> implements the + * <code>ComponentFactory</code> interface to provide * framed Swing GUI components. - * + * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 01/20/04 @@ -41,43 +41,43 @@ import javax.swing.JButton; public class FramedFactory implements ComponentFactory { /** - * Factory method to create framed <code>JLabel</code> objects. + * Factory method to create framed <code>JLabel</code> objects. * * @return the framed <code>JLabel</code> */ - + public JLabel createLabel() { JLabel label = new JLabel("This Label was created by " +getName()); Border raisedbevel = BorderFactory.createRaisedBevelBorder(); Border loweredbevel = BorderFactory.createLoweredBevelBorder(); label.setBorder(BorderFactory.createCompoundBorder(raisedbevel, loweredbevel)); - + return label; - } - + } + /** - * Factory method to create framed <code>JButton</code> objects. + * Factory method to create framed <code>JButton</code> objects. * * @param the label for the new <code>JButton</code> * @return the framed <code>JButton</code> */ - + public JButton createButton(String label) { JButton button = new JButton(label); Border raisedbevel = BorderFactory.createRaisedBevelBorder(); Border loweredbevel = BorderFactory.createLoweredBevelBorder(); button.setBorder(BorderFactory.createCompoundBorder(raisedbevel, loweredbevel)); return button; - } + } - /** + /** * Returns the name of the factory. * * @return the name of the factory */ - + public String getName() { return "Framed Factory"; - } -}
\ No newline at end of file + } +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/abstractFactory/java/Main.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/abstractFactory/java/Main.java index 001e36a25..cbf784190 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/abstractFactory/java/Main.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/abstractFactory/java/Main.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.abstractFactory.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,17 +15,17 @@ package ca.ubc.cs.spl.aspectPatterns.examples.abstractFactory.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code please see - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ import javax.swing.JFrame; import javax.swing.JRadioButton; import javax.swing.JButton; -import javax.swing.JPanel; +import javax.swing.JPanel; import javax.swing.ButtonGroup; import java.awt.event.WindowAdapter; @@ -36,19 +36,19 @@ import java.awt.event.ActionListener; /** * Implements the driver for the Abstract Factory design pattern example.<p> - * - * Intent: <i>Provide an interface for creating families of related or + * + * Intent: <i>Provide an interface for creating families of related or * dependent objects without specifying their concrete classes.</i><p> * * As an example scenario, our abstract factory interface defines two * factory methods <code>createLabel()</code> and <code>createButton()</code> - * that create related products (Swing GUI elements). + * that create related products (Swing GUI elements). * - * The driver is a swing GUI that allows the user to choose between the two + * The driver is a swing GUI that allows the user to choose between the two * concrete factories <code>RegularFactory</code> and <code>FramedFactory * </code>, and creates a new GUI with elements from the respective factory. * <p> - * + * * <code>RegularFactory</code> creates standard Swing GUI elements, while * <code>FramedFactory</code> produces elements which are framed. * @@ -63,34 +63,34 @@ import java.awt.event.ActionListener; * we want an existing class to become a factory (e.g. because we * want to make use of its functionality. * <LI> By defining the abstract factory as an interface we cannot attach - * any (default) implementations to its methods, nor is it possible + * any (default) implementations to its methods, nor is it possible * to include fields (such as the <code>name</code> field in this * example. * </UL> - * + * */ -public class Main +public class Main { /** * a concrete factory that creates regular GUI components */ - + private static ComponentFactory factory1 = new RegularFactory(); - + /** * a concrete factory that creates framed GUI components */ - + private static ComponentFactory factory2 = new FramedFactory(); /** * stores the currently selected factory */ - + private static ComponentFactory factory = factory1; - - + + /** * Creates the initial GUI that allows the user to choose a factory * and generate a new GUI with the elements that the respective @@ -98,7 +98,7 @@ public class Main * * @return a <code>JPanel</code> containing the GUI */ - + private static JPanel createGUI() { ActionListener radioListener = new ActionListener() { @@ -107,49 +107,49 @@ public class Main else factory = factory2; } }; - + JPanel panel = new JPanel(); - JRadioButton factoryButton1 = new JRadioButton("use Factory 1"); + JRadioButton factoryButton1 = new JRadioButton("use Factory 1"); JRadioButton factoryButton2 = new JRadioButton("use Factory 2"); factoryButton1.setActionCommand("factory1"); - factoryButton2.setActionCommand("factory2"); + factoryButton2.setActionCommand("factory2"); factoryButton1.addActionListener(radioListener); - factoryButton2.addActionListener(radioListener); + factoryButton2.addActionListener(radioListener); JButton create = new JButton("Create GUI"); - + ButtonGroup choices = new ButtonGroup(); - + choices.add(factoryButton1); choices.add(factoryButton2); - + create.addActionListener( new ActionListener() { - public void actionPerformed(ActionEvent e) { + public void actionPerformed(ActionEvent e) { Display display = new Display(factory); } }); - + panel.add(factoryButton1); panel.add(factoryButton2); panel.add(create); - + return panel; } /** * Implements the driver for this design pattern example. It sets up * the initial GUI. - */ - + */ + public static void main(String[] args) { JFrame frame = new JFrame("Abstract Factory Demo"); frame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) {System.exit(0);} - }); - + }); + frame.getContentPane().add(createGUI()); - + frame.pack(); frame.setVisible(true); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/abstractFactory/java/RegularFactory.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/abstractFactory/java/RegularFactory.java index b6aa6376e..472d7bd6e 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/abstractFactory/java/RegularFactory.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/abstractFactory/java/RegularFactory.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.abstractFactory.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,20 +15,20 @@ package ca.ubc.cs.spl.aspectPatterns.examples.abstractFactory.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code please see - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ import javax.swing.JLabel; -import javax.swing.JButton; +import javax.swing.JButton; /** - * This <i>Concrete Factory</i> implements the <code>ComponentFactory</code> + * This <i>Concrete Factory</i> implements the <code>ComponentFactory</code> * interface to provide regular Swing GUI components. - * + * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 01/20/04 @@ -36,35 +36,35 @@ import javax.swing.JButton; */ public class RegularFactory implements ComponentFactory { - + /** - * Factroy method to create regular <code>JLabel</code> objects. + * Factroy method to create regular <code>JLabel</code> objects. * * @return the regular <code>JLabel</code> */ - + public JLabel createLabel() { return new JLabel("This Label was created by " +getName()); } - + /** - * Factory method to create regular <code>JButton</code> objects. + * Factory method to create regular <code>JButton</code> objects. * * @param the label for the new <code>JButton</code> * @return the regular <code>JButton</code> */ - + public JButton createButton(String label) { return new JButton(label); } - /** + /** * Returns the name of the factory. * * @return the name of the factory */ - + public String getName() { return ("Regular Factory"); - } - -}
\ No newline at end of file + } + +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/adapter/aspectj/Main.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/adapter/aspectj/Main.java index 3ffc6a083..cc359fb35 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/adapter/aspectj/Main.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/adapter/aspectj/Main.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.adapter.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,15 +15,15 @@ package ca.ubc.cs.spl.aspectPatterns.examples.adapter.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** - * Implements the driver for the Adapter design pattern example. <p> + * Implements the driver for the Adapter design pattern example. <p> * * Intent: <i> Convert the interface of a class into another interface clients * expect. Adapter lets classes work together that couldn't otherwise because @@ -31,50 +31,50 @@ package ca.ubc.cs.spl.aspectPatterns.examples.adapter.aspectj; * * Experimental setup: anloguous to the pattern structure as described on page * 141 of the "Design Patterns" book: - * - * <code>Adaptee</code> can print strings to <code>System.out</code>. + * + * <code>Adaptee</code> can print strings to <code>System.out</code>. * <code>Adapter</code> allows to access <code>Adaptee</code>'s functionality - * via <code>Target</code>'s interface.<p> - * + * via <code>Target</code>'s interface.<p> + * * <i>This is the AspectJ implementation.</i><p> * * The implementation is that of an <i>object adapter</i> (NOT class adapter), - * as the latter requires multiple inheritance which Java does not provide. - * + * as the latter requires multiple inheritance which Java does not provide. + * * In this implementation, the <i>Adaptee</i> is effectively made to conform - * with the <i>Target</i> interface directly. <code>Adapter</code> is an - * aspect that ensures that by using the <code>declare parents</code> + * with the <i>Target</i> interface directly. <code>Adapter</code> is an + * aspect that ensures that by using the <code>declare parents</code> * construct (to ensure <i>Adaptee</i> is of type <i>Target</i>) and an - * inter-type declaration of the missing interface method. + * inter-type declaration of the missing interface method. * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 01/26/04 - * + * * @see Target * @see Adaptee * @see Adapter */ -public class Main { - +public class Main { + /** - * the Adaptee in the scenario. Note that our adaptee can be used as a - * Writer because of the <code>declare parents</code> statement in the + * the Adaptee in the scenario. Note that our adaptee can be used as a + * Writer because of the <code>declare parents</code> statement in the * aspect. */ - - private static Writer adaptee; + + private static Writer adaptee; /** - * Implements the driver. - * + * Implements the driver. + * * In this implementation, the <i>Adaptee</i> becomes its own * <i>Adapter</i>, so only one variable is needed. - * + * * @param args required for a main method, but ignored */ - + public static void main(String[] args) { System.out.println("Creating Adaptee (which is its own Adapter)..."); @@ -86,4 +86,4 @@ public class Main { System.out.println("Issuing the request() to the Adapter..."); adaptee.write("Test successful."); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/adapter/aspectj/PrinterAdapter.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/adapter/aspectj/PrinterAdapter.java index 86360ec43..1a7f611af 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/adapter/aspectj/PrinterAdapter.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/adapter/aspectj/PrinterAdapter.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.adapter.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,16 +15,16 @@ package ca.ubc.cs.spl.aspectPatterns.examples.adapter.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** * Adapts <code>SystemOutPrinter</code> to match the <code>Writer</code> - * interface. + * interface. * * @author Jan Hannemann * @author Gregor Kiczales @@ -33,30 +33,30 @@ package ca.ubc.cs.spl.aspectPatterns.examples.adapter.aspectj; * @see Target * @see Adaptee */ - -public aspect PrinterAdapter { - + +public aspect PrinterAdapter { + /** * Ensures that <code>SystemOutPrinter</code> implements <code>Writer - * </code>. This means that the <i>Adaptee</i> effectively becomes its - * own <i>Adapter</i>. + * </code>. This means that the <i>Adaptee</i> effectively becomes its + * own <i>Adapter</i>. */ - + declare parents: SystemOutPrinter implements Writer; - + /** * Defines a <code>write(String)</code> method on <code>Adaptee</code> * to ensure compliance with the <i>Writer</i> interface. - * + * * On the pattern level, this means that <i>Adaptee</i> now implements - * <i>request()</i>. + * <i>request()</i>. * * @param s the string to print * @see Writer#write(String) * @see SystemOutPrinter#printToSystemOut(String) */ - + public void SystemOutPrinter.write(String s) { printToSystemOut(s); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/adapter/aspectj/SystemOutPrinter.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/adapter/aspectj/SystemOutPrinter.java index abe34d6e8..c24431169 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/adapter/aspectj/SystemOutPrinter.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/adapter/aspectj/SystemOutPrinter.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.adapter.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,44 +15,44 @@ package ca.ubc.cs.spl.aspectPatterns.examples.adapter.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** - * Provides a specialized print method. Acts as the <i>Adaptee</i> in the + * Provides a specialized print method. Acts as the <i>Adaptee</i> in the * pattern context. * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 01/26/04 */ - + /** - * Provides a specialized print method. Acts as the <i>Adaptee</i> in the + * Provides a specialized print method. Acts as the <i>Adaptee</i> in the * pattern context. * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 01/26/04 */ - + public class SystemOutPrinter { /** * Prints the argument string to <code>System.out</code>. In the pattern - * context, this is the <i>specificRequest()</i> method on + * context, this is the <i>specificRequest()</i> method on * the <i>Adaptee</i>. * * @param s the string to be printed * @see Writer#write(String) the adapted method */ - + public void printToSystemOut(String s) { System.out.println(s); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/adapter/aspectj/Writer.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/adapter/aspectj/Writer.java index bd1ad3f4b..bc7a19641 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/adapter/aspectj/Writer.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/adapter/aspectj/Writer.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.adapter.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -17,7 +17,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.adapter.aspectj; * The Original Code is ca.ubc.cs.spl.aspectPatterns. * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * * Contributor(s): */ @@ -42,4 +42,4 @@ public interface Writer { */ public void write(String s); -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/adapter/java/Main.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/adapter/java/Main.java index b7e01fd30..80548eb88 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/adapter/java/Main.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/adapter/java/Main.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.adapter.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -89,4 +89,4 @@ public class Main { myTarget.write("Test successful."); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/adapter/java/PrinterAdapter.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/adapter/java/PrinterAdapter.java index bcc5196fd..6e1c62c55 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/adapter/java/PrinterAdapter.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/adapter/java/PrinterAdapter.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.adapter.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -17,7 +17,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.adapter.java; * The Original Code is ca.ubc.cs.spl.aspectPatterns. * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * * Contributor(s): */ @@ -70,4 +70,4 @@ public class PrinterAdapter implements Writer { public void write(String s) { adaptee.printToSystemOut(s); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/adapter/java/SystemOutPrinter.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/adapter/java/SystemOutPrinter.java index 023ab46db..8323abea3 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/adapter/java/SystemOutPrinter.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/adapter/java/SystemOutPrinter.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.adapter.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,35 +15,35 @@ package ca.ubc.cs.spl.aspectPatterns.examples.adapter.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** - * Provides a specialized print method. Acts as the <i>Adaptee</i> in the + * Provides a specialized print method. Acts as the <i>Adaptee</i> in the * pattern context. * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 01/26/04 */ - + public class SystemOutPrinter { /** * Prints the argument string to <code>System.out</code>. In the pattern - * context, this is the <i>specificRequest()</i> method on + * context, this is the <i>specificRequest()</i> method on * the <i>Adaptee</i>. * * @param s the string to be printed * @see Writer#write(String) the adapted method */ - + public void printToSystemOut(String s) { System.out.println(s); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/adapter/java/Writer.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/adapter/java/Writer.java index 63f0e0978..af4e1de4f 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/adapter/java/Writer.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/adapter/java/Writer.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.adapter.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,31 +15,31 @@ package ca.ubc.cs.spl.aspectPatterns.examples.adapter.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** - * Declares the target interface with a general output method. Acts as the + * Declares the target interface with a general output method. Acts as the * <i>Target</i> in the pattern context. * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 01/26/04 */ - + public interface Writer { - + /** * Prints the argument string. In the pattern context, this is the - * <i>request()</i> method on the <i>Target</i>. + * <i>request()</i> method on the <i>Target</i>. * * @param s the string to print - * @see PrinterAdapter + * @see PrinterAdapter */ - + public void write(String s); -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/bridge/aspectj/AbstractionImplementation.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/bridge/aspectj/AbstractionImplementation.java index 35f47ca16..a54047eac 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/bridge/aspectj/AbstractionImplementation.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/bridge/aspectj/AbstractionImplementation.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.bridge.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,11 +15,11 @@ package ca.ubc.cs.spl.aspectPatterns.examples.bridge.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** @@ -34,33 +34,33 @@ package ca.ubc.cs.spl.aspectPatterns.examples.bridge.aspectj; * */ -public aspect AbstractionImplementation { +public aspect AbstractionImplementation { /** - * stores the actual <i>Implementor</i> to use + * stores the actual <i>Implementor</i> to use */ - private ScreenImplementation Screen.implementor; - + private ScreenImplementation Screen.implementor; + /** - * Draws or prints a text to an output device determined by the + * Draws or prints a text to an output device determined by the * current <i>Implementor</i>. * * @param text The text to be drawn/printed */ - + public void Screen.drawText(String text) { implementor.printText(text); implementor.printLine(); } - + /** - * Draws or prints a text in a box to an output device determined + * Draws or prints a text in a box to an output device determined * by the current <i>Implementor</i>. * * @param text The text to be drawn/printed */ - + public void Screen.drawTextBox(String text) { int length = text.length(); @@ -74,23 +74,22 @@ public aspect AbstractionImplementation { implementor.printText(" "+text+" "); implementor.printDecor(); implementor.printLine(); - + for(int i=0; i<length+4; i++) { implementor.printDecor(); } - implementor.printLine(); + implementor.printLine(); } - + /** * Sets the current <i>Implementor</i>. * * @param implementor The new implementor */ - + public void Screen.setImplementor(ScreenImplementation implementor) { this.implementor = implementor; } } - diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/bridge/aspectj/CrossCapitalImplementation.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/bridge/aspectj/CrossCapitalImplementation.java index 99088ed25..3fb9eba8b 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/bridge/aspectj/CrossCapitalImplementation.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/bridge/aspectj/CrossCapitalImplementation.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.bridge.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,16 +15,16 @@ package ca.ubc.cs.spl.aspectPatterns.examples.bridge.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ -/** - * Prints capitalized text and uses the double cross ("#") to decorate. - * Represents a <i>ConcreteImplementation</i> in the context of the Bridge +/** + * Prints capitalized text and uses the double cross ("#") to decorate. + * Represents a <i>ConcreteImplementation</i> in the context of the Bridge * design pattern. * * @author Jan Hannemann @@ -32,10 +32,10 @@ package ca.ubc.cs.spl.aspectPatterns.examples.bridge.aspectj; * @version 1.1, 01/26/04 * */ - + public class CrossCapitalImplementation implements ScreenImplementation { - + /** * Does a line feed (to <code>System.out</code>). */ @@ -43,21 +43,21 @@ public class CrossCapitalImplementation implements ScreenImplementation { public void printLine() { System.out.println(); } - - /** + + /** * Prints a double cross ("#") to <code>System.out</code>. */ - + public void printDecor() { System.out.print("X"); } - + /** * Prints the argument text in capitals to <code>System.out</code>. * * @param text the text to print */ - + public void printText(String text) { System.out.print(text.toUpperCase()); } diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/bridge/aspectj/GreetingScreen.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/bridge/aspectj/GreetingScreen.java index 4fb5fbc4a..dd2ef5763 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/bridge/aspectj/GreetingScreen.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/bridge/aspectj/GreetingScreen.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.bridge.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,14 +15,14 @@ package ca.ubc.cs.spl.aspectPatterns.examples.bridge.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ -/** +/** * Prints/draws a greeting in a text box. Represents a <i>RefinedAbstraction * </i> in the context of the Bridge design pattern. * @@ -31,20 +31,20 @@ package ca.ubc.cs.spl.aspectPatterns.examples.bridge.aspectj; * @version 1.1, 01/26/04 * */ - + public class GreetingScreen implements Screen { - - /** + + /** * Creates a new <code>GreetingScreen</code> object with the provided * <i>Implementor</i>. * * @param si the implementor to use - */ + */ public GreetingScreen(ScreenImplementation si) { setImplementor(si); } - + /** * Draws/prints a greeting in a text box */ @@ -53,5 +53,3 @@ public class GreetingScreen implements Screen { drawTextBox("Greetings!"); } } - -
\ No newline at end of file diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/bridge/aspectj/InformationScreen.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/bridge/aspectj/InformationScreen.java index 3a4eed280..2c39dde01 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/bridge/aspectj/InformationScreen.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/bridge/aspectj/InformationScreen.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.bridge.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,15 +15,15 @@ package ca.ubc.cs.spl.aspectPatterns.examples.bridge.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ -/** - * Prints/draws the current system time in a text box. Represents a +/** + * Prints/draws the current system time in a text box. Represents a * <i>RefinedAbstraction</i> in the context of the Bridge design pattern. * * @author Jan Hannemann @@ -31,31 +31,30 @@ package ca.ubc.cs.spl.aspectPatterns.examples.bridge.aspectj; * @version 1.1, 01/26/04 * */ - -import java.util.Date; -public class InformationScreen implements Screen { - - - /** +import java.util.Date; + +public class InformationScreen implements Screen { + + + /** * Creates a new <code>InformationScreen</code> object with the provided * <i>Implementor</i>. * * @param si the implementor to use - */ + */ public InformationScreen(ScreenImplementation si) { setImplementor(si); } - + /** * Draws/prints the system time in a text box */ - public void drawInfo() { + public void drawInfo() { Date date = new Date(); drawTextBox("Current system time: "+date); } } -
\ No newline at end of file diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/bridge/aspectj/Main.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/bridge/aspectj/Main.java index 3c4a97e26..68f70df14 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/bridge/aspectj/Main.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/bridge/aspectj/Main.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.bridge.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,34 +15,34 @@ package ca.ubc.cs.spl.aspectPatterns.examples.bridge.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** - * Implements the driver for the Bridge design pattern example. <p> + * Implements the driver for the Bridge design pattern example. <p> * - * Intent: <i> Decouple an abstraction from its implementation so that the + * Intent: <i> Decouple an abstraction from its implementation so that the * two can vary independently.</i><p> * * Scenario: Have seperate hierarchies for Abstractions (here: Screens) - * and Implementors (here: ScreenImplementation), so that both - * can change independently of each other + * and Implementors (here: ScreenImplementation), so that both + * can change independently of each other * * Participants: <UL> * - * <LI> <code>Screen</code> - <i>Abstraction</i> that defines - * an interface for printing text and boxedText to stdout. + * <LI> <code>Screen</code> - <i>Abstraction</i> that defines + * an interface for printing text and boxedText to stdout. * <LI> <code>GreetingScreen</code> - <i>RefinedAbstraction</i> that prints * a boxed greeting message * <LI> <code>InformationScreen</code> - <i>RefinedAbstraction</i> that prints * the system time (boxed) - * <LI> <code>ScreenImplementation</code> - <i>Implementor</i> interface, + * <LI> <code>ScreenImplementation</code> - <i>Implementor</i> interface, * defines basic operations to output formatted strings - * <LI> <code>StarImplementation</code> - <i>ConcreteImplementation</i> that + * <LI> <code>StarImplementation</code> - <i>ConcreteImplementation</i> that * creates textBoxes of stars * <LI> <code>CrossCapitalImplementation</code> - <i>ConcreteImplementation * </i> that creates textBoxes of double crosses (hashes) and prints all @@ -52,7 +52,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.bridge.aspectj; * </UL><p> * * <i>This is the AspectJ implementation.</i><p> - * + * * The implementations for methods on the <i>Abstraction</i> are declared * in the <code>AbstractImplementation</code> aspect. * @@ -68,8 +68,8 @@ package ca.ubc.cs.spl.aspectPatterns.examples.bridge.aspectj; * @see CrossCapitalImplementation * @see AbstractionImplementation */ - - + + public class Main { /** @@ -78,33 +78,33 @@ public class Main { * * @param args required by Java, but ignored */ - - public static void main(String[] args) { - + + public static void main(String[] args) { + System.out.println("Creating implementations..."); - + ScreenImplementation i1 = new StarImplementation(); ScreenImplementation i2 = new CrossCapitalImplementation(); - + System.out.println("Creating abstraction (screens) / implementation combinations..."); - + GreetingScreen gs1 = new GreetingScreen(i1); GreetingScreen gs2 = new GreetingScreen(i2); InformationScreen is1 = new InformationScreen(i1); - InformationScreen is2 = new InformationScreen(i2); - + InformationScreen is2 = new InformationScreen(i2); + System.out.println("Starting test:\n"); - + gs1.drawText("\nScreen 1 (Refined Abstraction 1, Implementation 1):"); gs1.drawGreeting(); - + gs2.drawText("\nScreen 2 (Refined Abstraction 1, Implementation 2):"); gs2.drawGreeting(); - + is1.drawText("\nScreen 3 (Refined Abstraction 2, Implementation 1):"); is1.drawInfo(); is2.drawText("\nScreen 4 (Refined Abstraction 2, Implementation 2):"); is2.drawInfo(); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/bridge/aspectj/Screen.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/bridge/aspectj/Screen.java index 67f0a34ff..79e8e43a8 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/bridge/aspectj/Screen.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/bridge/aspectj/Screen.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.bridge.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,11 +15,11 @@ package ca.ubc.cs.spl.aspectPatterns.examples.bridge.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ @@ -36,23 +36,22 @@ package ca.ubc.cs.spl.aspectPatterns.examples.bridge.aspectj; */ public interface Screen { - + /** - * Draws or prints a text to an output device determined by the + * Draws or prints a text to an output device determined by the * current <i>Implementor</i>. * * @param text The text to be drawn/printed */ - + public void drawText(String text); - + /** - * Draws or prints a text in a box to an output device determined + * Draws or prints a text in a box to an output device determined * by the current <i>Implementor</i>. * * @param text The text to be drawn/printed */ - + public void drawTextBox(String text); } -
\ No newline at end of file diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/bridge/aspectj/ScreenImplementation.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/bridge/aspectj/ScreenImplementation.java index 050912c6f..76ea88203 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/bridge/aspectj/ScreenImplementation.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/bridge/aspectj/ScreenImplementation.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.bridge.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,15 +15,15 @@ package ca.ubc.cs.spl.aspectPatterns.examples.bridge.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ -/** - * Prints lines, decorators and text. Represents a +/** + * Prints lines, decorators and text. Represents a * <i>Implementor</i> in the context of the Bridge design pattern. * * @author Jan Hannemann @@ -33,24 +33,24 @@ package ca.ubc.cs.spl.aspectPatterns.examples.bridge.aspectj; */ public interface ScreenImplementation { - + /** * Prints a line feed. */ void printLine(); - - /** + + /** * Prints a decorator symbol (a string of length 1). */ - + void printDecor(); - + /** * Prints the argument text. * * @param text the text to print */ - - void printText(String text); + + void printText(String text); } diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/bridge/aspectj/StarImplementation.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/bridge/aspectj/StarImplementation.java index eddcdebee..9b74dd455 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/bridge/aspectj/StarImplementation.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/bridge/aspectj/StarImplementation.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.bridge.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,15 +15,15 @@ package ca.ubc.cs.spl.aspectPatterns.examples.bridge.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ -/** - * Prints regular text and uses the star ("*") to decorate. Represents a +/** + * Prints regular text and uses the star ("*") to decorate. Represents a * <i>ConcreteImplementation</i> in the context of the Bridge design pattern. * * @author Jan Hannemann @@ -31,9 +31,9 @@ package ca.ubc.cs.spl.aspectPatterns.examples.bridge.aspectj; * @version 1.1, 01/26/04 * */ - + public class StarImplementation implements ScreenImplementation { - + /** * Does a line feed (to <code>System.out</code>). */ @@ -41,21 +41,21 @@ public class StarImplementation implements ScreenImplementation { public void printLine() { System.out.println(); } - - /** + + /** * Prints a star ("*") to <code>System.out</code>. */ - + public void printDecor() { System.out.print("*"); } - + /** * Prints the argument text to <code>System.out</code>. * * @param text the text to print */ - + public void printText(String text) { System.out.print(text); } diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/bridge/java/CrossCapitalImplementation.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/bridge/java/CrossCapitalImplementation.java index 32456bda8..18ae61e73 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/bridge/java/CrossCapitalImplementation.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/bridge/java/CrossCapitalImplementation.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.bridge.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,16 +15,16 @@ package ca.ubc.cs.spl.aspectPatterns.examples.bridge.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ -/** - * Prints capitalized text and uses double crosses ("#") to decorate. - * Represents a <i>ConcreteImplementation</i> in the context of the Bridge +/** + * Prints capitalized text and uses double crosses ("#") to decorate. + * Represents a <i>ConcreteImplementation</i> in the context of the Bridge * design pattern. * * @author Jan Hannemann @@ -32,10 +32,10 @@ package ca.ubc.cs.spl.aspectPatterns.examples.bridge.java; * @version 1.1, 01/26/04 * */ - + public class CrossCapitalImplementation implements ScreenImplementation { - + /** * Does a line feed (to <code>System.out</code>). */ @@ -43,21 +43,21 @@ public class CrossCapitalImplementation implements ScreenImplementation { public void printLine() { System.out.println(); } - - /** + + /** * Prints a double cross ("#") to <code>System.out</code>. */ - + public void printDecor() { System.out.print("X"); } - + /** * Prints the argument text in capitals to <code>System.out</code>. * * @param text the text to print */ - + public void printText(String text) { System.out.print(text.toUpperCase()); } diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/bridge/java/GreetingScreen.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/bridge/java/GreetingScreen.java index 5ce3507a2..98ef50211 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/bridge/java/GreetingScreen.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/bridge/java/GreetingScreen.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.bridge.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -17,7 +17,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.bridge.java; * The Original Code is ca.ubc.cs.spl.aspectPatterns. * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * * Contributor(s): */ @@ -53,5 +53,3 @@ public class GreetingScreen extends Screen { drawTextBox("Greetings!"); } } - -
\ No newline at end of file diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/bridge/java/InformationScreen.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/bridge/java/InformationScreen.java index a15b6f562..c1692ff06 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/bridge/java/InformationScreen.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/bridge/java/InformationScreen.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.bridge.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,16 +15,16 @@ package ca.ubc.cs.spl.aspectPatterns.examples.bridge.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ -/** - * Prints/draws the current system time in a text box. Represents a +/** + * Prints/draws the current system time in a text box. Represents a * <i>RefinedAbstraction</i> in the context of the Bridge design pattern. * * @author Jan Hannemann @@ -32,31 +32,30 @@ package ca.ubc.cs.spl.aspectPatterns.examples.bridge.java; * @version 1.1, 01/26/04 * */ - -import java.util.Date; -public class InformationScreen extends Screen { - - - /** +import java.util.Date; + +public class InformationScreen extends Screen { + + + /** * Creates a new <code>InformationScreen</code> object with the provided * <i>Implementor</i>. * * @param si the implementor to use - */ + */ public InformationScreen(ScreenImplementation si) { super(si); } - + /** * Draws/prints the system time in a text box */ - public void drawInfo() { + public void drawInfo() { Date date = new Date(); drawTextBox("Current system time: "+date); } } -
\ No newline at end of file diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/bridge/java/Main.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/bridge/java/Main.java index a058cffb7..033b3aaf7 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/bridge/java/Main.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/bridge/java/Main.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.bridge.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,34 +15,34 @@ package ca.ubc.cs.spl.aspectPatterns.examples.bridge.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** - * Implements the driver for the Bridge design pattern example. <p> + * Implements the driver for the Bridge design pattern example. <p> * - * Intent: <i> Decouple an abstraction from its implementation so that the + * Intent: <i> Decouple an abstraction from its implementation so that the * two can vary independently.</i><p> * * Scenario: Have seperate hierarchies for Abstractions (here: Screens) - * and Implementors (here: ScreenImplementation), so that both - * can change independently of each other + * and Implementors (here: ScreenImplementation), so that both + * can change independently of each other * * Participants: <UL> * - * <LI> <code>Screen</code> - <i>Abstraction</i> that defines - * an interface for printing text and boxedText to System.out. + * <LI> <code>Screen</code> - <i>Abstraction</i> that defines + * an interface for printing text and boxedText to System.out. * <LI> <code>GreetingScreen</code> - <i>RefinedAbstraction</i> that prints * a boxed greeting message * <LI> <code>InformationScreen</code> - <i>RefinedAbstraction</i> that prints * the system time (boxed) - * <LI> <code>ScreenImplementation</code> - <i>Implementor</i> interface, + * <LI> <code>ScreenImplementation</code> - <i>Implementor</i> interface, * defines basic operations to output formatted strings - * <LI> <code>StarImplementation</code> - <i>ConcreteImplementation</i> that + * <LI> <code>StarImplementation</code> - <i>ConcreteImplementation</i> that * creates textBoxes of stars * <LI> <code>CrossCapitalImplementation</code> - <i>ConcreteImplementation * </i> that creates textBoxes of double crosses (hashes) and prints all @@ -52,8 +52,8 @@ package ca.ubc.cs.spl.aspectPatterns.examples.bridge.java; * <i>This is the Java implementation.</i><p> * * Note that <i>Abstraction</i> cannot be an interface in Java, as we need to - * specify how <i>operation()</i> is performed using the interface of - * <i>Implementor</i>. As <i>Abstraction</i> is not necessarily a defining + * specify how <i>operation()</i> is performed using the interface of + * <i>Implementor</i>. As <i>Abstraction</i> is not necessarily a defining * role, this is a limitation. With multiple inheritance, this would not be * the case. * @@ -68,8 +68,8 @@ package ca.ubc.cs.spl.aspectPatterns.examples.bridge.java; * @see StarImplementation * @see CrossCapitalImplementation */ - - + + public class Main { /** @@ -78,33 +78,33 @@ public class Main { * * @param args required by Java, but ignored */ - - public static void main(String[] args) { - + + public static void main(String[] args) { + System.out.println("Creating implementations..."); - + ScreenImplementation i1 = new StarImplementation(); ScreenImplementation i2 = new CrossCapitalImplementation(); - + System.out.println("Creating abstraction (screens) / implementation combinations..."); - + GreetingScreen gs1 = new GreetingScreen(i1); GreetingScreen gs2 = new GreetingScreen(i2); InformationScreen is1 = new InformationScreen(i1); - InformationScreen is2 = new InformationScreen(i2); - + InformationScreen is2 = new InformationScreen(i2); + System.out.println("Starting test:\n"); - + gs1.drawText("\nScreen 1 (Refined Abstraction 1, Implementation 1):"); gs1.drawGreeting(); - + gs2.drawText("\nScreen 2 (Refined Abstraction 1, Implementation 2):"); gs2.drawGreeting(); - + is1.drawText("\nScreen 3 (Refined Abstraction 2, Implementation 1):"); is1.drawInfo(); is2.drawText("\nScreen 4 (Refined Abstraction 2, Implementation 2):"); is2.drawInfo(); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/bridge/java/Screen.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/bridge/java/Screen.java index 5fbed961d..1f7b5ac63 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/bridge/java/Screen.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/bridge/java/Screen.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.bridge.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,11 +15,11 @@ package ca.ubc.cs.spl.aspectPatterns.examples.bridge.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ @@ -28,11 +28,11 @@ package ca.ubc.cs.spl.aspectPatterns.examples.bridge.java; * provides two methods to draw/print: <code>drawText(String)</code> and * <code>drawTextBox(String)</code>. Both methods call appropriate methods * on the <code>ScreenImplementor</code> of this <code>Screen</code> object. - * - * Note that cannot be an interface, since it has implementation - * associated with it (otherwise it would require multiple inheritance). - * This restricts the flexibility of the patter somewhat as all - * <i>RefinedAbstractions</i> consequently can not have additional + * + * Note that cannot be an interface, since it has implementation + * associated with it (otherwise it would require multiple inheritance). + * This restricts the flexibility of the patter somewhat as all + * <i>RefinedAbstractions</i> consequently can not have additional * superclasses. * * @author Jan Hannemann @@ -42,43 +42,43 @@ package ca.ubc.cs.spl.aspectPatterns.examples.bridge.java; */ public abstract class Screen { - + /** - * stores the actual <i>Implementor</i> to use + * stores the actual <i>Implementor</i> to use */ - private ScreenImplementation implementor; - + private ScreenImplementation implementor; + /** * Creates a new <code>Screen</code> object given an <i>Implementor</i> * - * @param implementor the implementor to use for calls to + * @param implementor the implementor to use for calls to * <i>operationImpl()</i> */ - + public Screen(ScreenImplementation implementor) { this.implementor = implementor; } - + /** - * Draws or prints a text to an output device determined by the + * Draws or prints a text to an output device determined by the * current <i>Implementor</i>. * * @param text The text to be drawn/printed */ - + public void drawText(String text) { implementor.printText(text); implementor.printLine(); } - + /** - * Draws or prints a text in a box to an output device determined + * Draws or prints a text in a box to an output device determined * by the current <i>Implementor</i>. * * @param text The text to be drawn/printed */ - + public void drawTextBox(String text) { int length = text.length(); @@ -92,12 +92,11 @@ public abstract class Screen { implementor.printText(" "+text+" "); implementor.printDecor(); implementor.printLine(); - + for(int i=0; i<length+4; i++) { implementor.printDecor(); } - implementor.printLine(); + implementor.printLine(); } } -
\ No newline at end of file diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/bridge/java/ScreenImplementation.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/bridge/java/ScreenImplementation.java index 1ea18ffd5..738bd86cb 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/bridge/java/ScreenImplementation.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/bridge/java/ScreenImplementation.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.bridge.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -17,7 +17,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.bridge.java; * The Original Code is ca.ubc.cs.spl.aspectPatterns. * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * * Contributor(s): */ diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/bridge/java/StarImplementation.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/bridge/java/StarImplementation.java index 87c00a36f..cd14e9b2e 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/bridge/java/StarImplementation.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/bridge/java/StarImplementation.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.bridge.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -17,7 +17,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.bridge.java; * The Original Code is ca.ubc.cs.spl.aspectPatterns. * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * * Contributor(s): */ diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/builder/aspectj/Creator.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/builder/aspectj/Creator.java index a480a78a2..a92621ad9 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/builder/aspectj/Creator.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/builder/aspectj/Creator.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.builder.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,56 +15,55 @@ package ca.ubc.cs.spl.aspectPatterns.examples.builder.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** - * Defines the interface for <i>Builder</i>s. + * Defines the interface for <i>Builder</i>s. * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 01/26/04 - * + * * @see TextBuilder * @see StructureBuilder */ public interface Creator { - - /** + + /** * Defines the <i>buildPart()</i> operation for type parts. * * @param type the type to process - */ + */ public abstract void processType(String type); - /** + /** * Defines the <i>buildPart()</i> operation for attribute parts. * * @param type the type to process - */ + */ public abstract void processAttribute(String type); - /** + /** * Defines the <i>buildPart()</i> operation for value parts. * * @param type the type to process - */ + */ + + public abstract void processValue(String type); - public abstract void processValue(String type); - - /** + /** * Defines the <i>getResult()</i> operation for <i>Builder</i>s. * * @param type the type to process - */ + */ public String getRepresentation(); } -
\ No newline at end of file diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/builder/aspectj/CreatorImplementation.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/builder/aspectj/CreatorImplementation.java index 6a2a2638f..c1631e2e3 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/builder/aspectj/CreatorImplementation.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/builder/aspectj/CreatorImplementation.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.builder.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,11 +15,11 @@ package ca.ubc.cs.spl.aspectPatterns.examples.builder.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** @@ -28,7 +28,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.builder.aspectj; * without losing the possibility to declare default implementations and even * variables. * - * This also illiustrates the tradeoffs: The current version of AspectJ + * This also illiustrates the tradeoffs: The current version of AspectJ * (1.0.4) does not allow protected introduction. To achieve the same result * as in the OO case, the result variable has to be introduced as public * (to be inherited). To make sure that no other classes can access that @@ -38,22 +38,22 @@ package ca.ubc.cs.spl.aspectPatterns.examples.builder.aspectj; * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 01/26/04 - * + * * @see Builder * @see TextBuilder * @see StructureBuilder */ public aspect CreatorImplementation { - + /** * Declares the result variable on the <code>Creator</code> interface. */ - + public String Creator.representation; /** - * Declares the <i>getResult()</i> method with a default implementation + * Declares the <i>getResult()</i> method with a default implementation * to the <code>Creator</code> interface. * * @returns the representation string for the builder. @@ -62,15 +62,15 @@ public aspect CreatorImplementation { public String Creator.getRepresentation() { return representation; } - + /** - * Declares a compiler error that gets reported if other classes + * Declares a compiler error that gets reported if other classes * (except Creators or this aspect) try to access the result variable. */ - - declare error: (set(public String Creator+.representation) - || get(public String Creator+.representation)) - && ! (within(Creator+) - || within(CreatorImplementation)): + + declare error: (set(public String Creator+.representation) + || get(public String Creator+.representation)) + && ! (within(Creator+) + || within(CreatorImplementation)): "variable result is aspect protected. Use getResult() to access it"; } diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/builder/aspectj/Main.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/builder/aspectj/Main.java index e3101e89e..3b9c326da 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/builder/aspectj/Main.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/builder/aspectj/Main.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.builder.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,21 +15,21 @@ package ca.ubc.cs.spl.aspectPatterns.examples.builder.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** - * Implements the driver for the Builder design pattern example.<p> + * Implements the driver for the Builder design pattern example.<p> * - * Intent: <i>Separate the construction of a complex object from its - * representation so that the same construction process can create different + * Intent: <i>Separate the construction of a complex object from its + * representation so that the same construction process can create different * representations</i><p> * - * Participating objects are <code>TextCreator</code> and + * Participating objects are <code>TextCreator</code> and * <code>XMLCreator</code> as <i>Builder</i>s that implement the * <code>Creator</code> interface.<p> * @@ -38,17 +38,17 @@ package ca.ubc.cs.spl.aspectPatterns.examples.builder.aspectj; * person. <code>TextCreator</code> creates a text-like representation, * <code>XMLCreator</code> an XML-like one. * - * <p><i>This is the AspectJ version.</i><p> + * <p><i>This is the AspectJ version.</i><p> * * The abstract class is now replaced by an interface. A concrete aspect - * declares the instance variable and default method implementations. - * This frees the participants (<i>ConcreteBuilder</i>s) to be + * declares the instance variable and default method implementations. + * This frees the participants (<i>ConcreteBuilder</i>s) to be * subclasses of something else. * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 01/26/04 - * + * * @see Builder * @see TextCreator * @see XMLCreator @@ -56,7 +56,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.builder.aspectj; public class Main { - /** + /** * Builds a string representation of a person using a given builder. * * @param the builder to use. @@ -69,29 +69,29 @@ public class Main { builder.processAttribute("Age"); builder.processValue("33"); builder.processAttribute("Occupation"); - builder.processValue("Builder"); + builder.processValue("Builder"); } /** - * Implements the driver for the Builder design pattern example.<p> + * Implements the driver for the Builder design pattern example.<p> * * In this example, <code>Main</code> acts as the <i>Director</i> that * uses two different builders to build string representations of a * person. <code>TextCreator</code> creates a text-like representation, * <code>XMLCreator</code> an XML-like one. - * + * * @param args the command-line parameters, unused. */ public static void main(String[] args) { - + Creator builder1 = new TextCreator(); Creator builder2 = new XMLCreator(); - + build(builder1); build(builder2); - + System.out.println(builder1.getRepresentation()); System.out.println(builder2.getRepresentation()); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/builder/aspectj/TextCreator.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/builder/aspectj/TextCreator.java index 43307c021..5ca3edcc3 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/builder/aspectj/TextCreator.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/builder/aspectj/TextCreator.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.builder.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,11 +15,11 @@ package ca.ubc.cs.spl.aspectPatterns.examples.builder.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** @@ -34,33 +34,33 @@ package ca.ubc.cs.spl.aspectPatterns.examples.builder.aspectj; public class TextCreator implements Creator { - /** + /** * Defines a <i>buildPart()</i> operation for type parts. * * @param newType the type to process - */ + */ public void processType(String newType) { representation = "This is a new "+newType+":\n"; } - - /** + + /** * Defines a <i>buildPart()</i> operation for attribute parts. * * @param newAttribute the type to process - */ + */ public void processAttribute(String newAttribute) { representation += ("Its " + newAttribute + " is "); } - - /** + + /** * Defines a <i>buildPart()</i> operation for value parts. * * @param newValue the value to process - */ + */ public void processValue(String newValue) { representation += (newValue + ".\n"); } -} +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/builder/aspectj/XMLCreator.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/builder/aspectj/XMLCreator.java index ff66a4184..193292535 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/builder/aspectj/XMLCreator.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/builder/aspectj/XMLCreator.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.builder.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,11 +15,11 @@ package ca.ubc.cs.spl.aspectPatterns.examples.builder.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** @@ -30,74 +30,74 @@ package ca.ubc.cs.spl.aspectPatterns.examples.builder.aspectj; * @author Gregor Kiczales * @version 1.1, 01/26/04 */ - + public class XMLCreator implements Creator { protected String type = null; protected String attribute = null; - /** + /** * Defines a <i>buildPart()</i> operation for type parts. * * @param newType the type to process - */ + */ public void processType(String newType) { representation = "<"+newType+">\n"; type = newType; } - - /** + + /** * Defines a <i>buildPart()</i> operation for attribute parts. * * @param newAttribute the attribute to process - */ + */ public void processAttribute(String newAttribute) { checkAttribute(); representation += ("\t<" + newAttribute + ">"); this.attribute = newAttribute; } - - /** + + /** * Defines a <i>buildPart()</i> operation for value parts. * * @param newValue the type to process - */ + */ public void processValue(String newValue) { representation += newValue; - } - + } + /** * Checks wether the opening type tag is closed and closes it if not. */ - + protected void checkType() { if (type != null) { representation += ("</" + type + ">\n"); type = null; } } - + /** * Checks wether the opening attribute tag is closed and closes it if not. */ - protected void checkAttribute() { + protected void checkAttribute() { if (attribute != null) { representation += ("</" + attribute + ">\n"); attribute = null; } } - - /** - * Defines the <i>getResult()</i> operation for <i>Builder</i>s. - */ - public String getRepresentation() { + /** + * Defines the <i>getResult()</i> operation for <i>Builder</i>s. + */ + + public String getRepresentation() { checkAttribute(); checkType(); return representation; } -} +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/builder/java/Creator.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/builder/java/Creator.java index 828540806..3c05b19d7 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/builder/java/Creator.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/builder/java/Creator.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.builder.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,65 +15,64 @@ package ca.ubc.cs.spl.aspectPatterns.examples.builder.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** - * Defines the interface for <i>Builder</i>s. + * Defines the interface for <i>Builder</i>s. * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 01/26/04 - * + * * @see TextCreator * @see XMLCreator */ public abstract class Creator { - - /** + + /** * An inheritable variable that carries the result of the build. */ - + protected String representation; - /** + /** * Defines a <i>buildPart()</i> operation for type parts. * * @param type the type to process - */ + */ public abstract void processType(String type); - /** + /** * Defines a <i>buildPart()</i> operation for attribute parts. * * @param newAttribute the attribute to process - */ + */ public abstract void processAttribute(String newAttribute); - /** + /** * Defines a <i>buildPart()</i> operation for value parts. * * @param newValue the value to process - */ + */ public abstract void processValue(String newValue); - - /** + + /** * Defines a <i>getResult()</i> operation for <i>Builder</i>s. * This is the default implementation. - * + * * @return a representation of the build result - */ + */ public String getRepresentation() { return representation; - } + } } -
\ No newline at end of file diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/builder/java/Main.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/builder/java/Main.java index 217eda258..7f049f00a 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/builder/java/Main.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/builder/java/Main.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.builder.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,21 +15,21 @@ package ca.ubc.cs.spl.aspectPatterns.examples.builder.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** - * Implements the driver for the Builder design pattern example.<p> + * Implements the driver for the Builder design pattern example.<p> * - * Intent: <i>Separate the construction of a complex object from its - * representation so that the same construction process can create different + * Intent: <i>Separate the construction of a complex object from its + * representation so that the same construction process can create different * representations</i><p> * - * Participating objects are <code>TextCreator</code> and + * Participating objects are <code>TextCreator</code> and * <code>XMLCreator</code> which act as <i>Builder</i>s that implement the * <code>Creator</code> interface.<p> * @@ -41,7 +41,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.builder.java; * <p><i>This is the Java version.</i><p> * * In Java, the <i>Builder</i> has to be an abstract class (as opposed to - * an interface) to allow to define variables or default implementations. + * an interface) to allow to define variables or default implementations. * Consequently, all <i>ConcreteBuilders</i> have to have that * class as their superclass, making it impossible to be part of another * class hierarchy. @@ -49,7 +49,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.builder.java; * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 01/26/04 - * + * * @see Builder * @see TextCreator * @see XMLCreator @@ -57,7 +57,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.builder.java; public class Main { - /** + /** * Builds a string representation of a person using a given builder. * * @param builder the builder to use. @@ -70,30 +70,30 @@ public class Main { builder.processAttribute("Age"); builder.processValue("33"); builder.processAttribute("Occupation"); - builder.processValue("Builder"); + builder.processValue("Builder"); } /** - * Implements the driver for the Builder design pattern example.<p> + * Implements the driver for the Builder design pattern example.<p> * * In this example, <code>Main</code> acts as the <i>Director</i> that * uses two different builders to build string representations of a * person. <code>TextCreator</code> creates a text-like representation, * <code>XMLCreator</code> an XML-like one. - * + * * @param args the command-line parameters, unused. * */ public static void main(String[] args) { - + Creator builder1 = new TextCreator(); Creator builder2 = new XMLCreator(); - + build(builder1); build(builder2); - + System.out.println(builder1.getRepresentation()); System.out.println(builder2.getRepresentation()); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/builder/java/TextCreator.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/builder/java/TextCreator.java index 397144108..cdd795bb9 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/builder/java/TextCreator.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/builder/java/TextCreator.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.builder.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,11 +15,11 @@ package ca.ubc.cs.spl.aspectPatterns.examples.builder.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** @@ -34,33 +34,33 @@ package ca.ubc.cs.spl.aspectPatterns.examples.builder.java; public class TextCreator extends Creator { - /** + /** * Defines a <i>buildPart()</i> operation for type parts. * * @param newType the type to process - */ + */ public void processType(String newType) { representation = "This is a new "+newType+":\n"; } - - /** + + /** * Defines a <i>buildPart()</i> operation for attribute parts. * * @param newAttribute the attribute to process - */ + */ public void processAttribute(String newAttribute) { representation += ("Its " + newAttribute + " is "); } - - /** + + /** * Defines a <i>buildPart()</i> operation for value parts. * * @param newValue the value to process - */ + */ public void processValue(String newValue) { representation += (newValue + ".\n"); } -} +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/builder/java/XMLCreator.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/builder/java/XMLCreator.java index 8c678ea9c..eb8f9132d 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/builder/java/XMLCreator.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/builder/java/XMLCreator.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.builder.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -17,7 +17,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.builder.java; * The Original Code is ca.ubc.cs.spl.aspectPatterns. * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * * Contributor(s): */ diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/chainOfResponsibility/aspectj/Button.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/chainOfResponsibility/aspectj/Button.java index ba0aa96f6..71fb784e3 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/chainOfResponsibility/aspectj/Button.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/chainOfResponsibility/aspectj/Button.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.chainOfResponsibility.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,34 +15,34 @@ package ca.ubc.cs.spl.aspectPatterns.examples.chainOfResponsibility.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ - + import javax.swing.*; import java.awt.event.*; -/** +/** * A simple GUI button that implements its own ActionListener. * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 01/27/04 - * - */ - -public class Button extends JButton { + * + */ - /** +public class Button extends JButton { + + /** * Creates a Button widget. An ActionListener is also added that calls * the <code>doClick(Click)</code> method when the button is pressed * - * @param label the button label - */ - + * @param label the button label + */ + public Button(String label) { super(label); this.addActionListener( new ActionListener() { @@ -50,16 +50,16 @@ public class Button extends JButton { doClick(new Click(ae)); } }); - } + } - - /** + + /** * An empty method that is called when the button is clicked. This method * could also be defined in the concrete aspect. * - * @param click the <code>Click</code> that was created when the - * button was clicked. - */ - + * @param click the <code>Click</code> that was created when the + * button was clicked. + */ + public void doClick(Click click) {} -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/chainOfResponsibility/aspectj/Click.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/chainOfResponsibility/aspectj/Click.java index fc524c0eb..640cf247e 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/chainOfResponsibility/aspectj/Click.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/chainOfResponsibility/aspectj/Click.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.chainOfResponsibility.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,20 +15,20 @@ package ca.ubc.cs.spl.aspectPatterns.examples.chainOfResponsibility.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ - + import java.awt.event.ActionEvent; -/** +/** * Represents the <i>Request</i> in the <i>Chain of Responsibility</i> * pattern, which is a button click in this case. Provides methods for * accessing key masks associated with the click (to find out whether - * the SHIFT, ALT, or CTRL keys were pressed during the click). + * the SHIFT, ALT, or CTRL keys were pressed during the click). * * @author Jan Hannemann * @author Gregor Kiczales @@ -36,58 +36,56 @@ import java.awt.event.ActionEvent; * */ -public class Click { - +public class Click { + /** * the ActionEvent that describes this Click */ protected ActionEvent description; - /** + /** * Creates a <code>Click</code> described by the provided <code> - * ActionEvent</code>. + * ActionEvent</code>. * * @param description the ActionEvent that describes this Click - */ - + */ + public Click(ActionEvent description) { - this.description = description; - } - - /** + this.description = description; + } + + /** * Convenience method for inquiring whether SHIFT was pressed while - * the click occured. - * + * the click occured. + * * @return whether the SHIFT key was pressed when the click occured - */ - + */ + public boolean hasShiftMask() { return ((description.getModifiers() & ActionEvent.SHIFT_MASK) != 0 ); } - /** + /** * Convenience method for inquiring whether ALT was pressed while - * the click occured. - * + * the click occured. + * * @return whether the ALT key was pressed when the click occured - */ - + */ + public boolean hasAltMask() { return ((description.getModifiers() & ActionEvent.ALT_MASK) != 0 ); } - /** + /** * Convenience method for inquiring whether CTRL was pressed while - * the click occured. - * + * the click occured. + * * @return whether the CTRL key was pressed when the click occured - */ - + */ + public boolean hasCtrlMask() { return ((description.getModifiers() & ActionEvent.CTRL_MASK) != 0 ); } } - -
\ No newline at end of file diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/chainOfResponsibility/aspectj/ClickChain.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/chainOfResponsibility/aspectj/ClickChain.java index 96223074c..e29def195 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/chainOfResponsibility/aspectj/ClickChain.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/chainOfResponsibility/aspectj/ClickChain.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.chainOfResponsibility.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,23 +15,23 @@ package ca.ubc.cs.spl.aspectPatterns.examples.chainOfResponsibility.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ - -import java.awt.event.ActionEvent; + +import java.awt.event.ActionEvent; import ca.ubc.cs.spl.aspectPatterns.patternLibrary.ChainOfResponsibilityProtocol; /** * Implements an instance of the abstracted ChainOfResponsibility design - * pattern. Here, the a click on the button triggers an event (request) - * that gets passed along the widget hierarchy (button -> panel -> frame). - * - * In this implementation, the request is handled by the panel if the - * CTRL mask is active (i.e., if the CTRL key was pressed while the button + * pattern. Here, the a click on the button triggers an event (request) + * that gets passed along the widget hierarchy (button -> panel -> frame). + * + * In this implementation, the request is handled by the panel if the + * CTRL mask is active (i.e., if the CTRL key was pressed while the button * was clicked). If the SHIFT mask is active, the frame handles the request. * Otherwise, the request is unhandled. * @@ -40,7 +40,7 @@ import ca.ubc.cs.spl.aspectPatterns.patternLibrary.ChainOfResponsibilityProtocol * @version 1.1, 01/27/04 * */ - + public aspect ClickChain extends ChainOfResponsibilityProtocol { /** @@ -49,52 +49,52 @@ public aspect ClickChain extends ChainOfResponsibilityProtocol { declare parents: Frame implements Handler; declare parents: Panel implements Handler; - declare parents: Button implements Handler; + declare parents: Button implements Handler; - declare parents: Click implements Request; - - - protected pointcut eventTrigger(Handler handler, Request request): + declare parents: Click implements Request; + + + protected pointcut eventTrigger(Handler handler, Request request): call(void Button.doClick(Click)) && target(handler) && args(request); - + public boolean Button.acceptRequest(Request request) { System.out.println("Button is asked to accept the request..."); if (request instanceof Click) { Click click = (Click) request; return (click.hasShiftMask()); - } + } return false; - } - + } + public void Button.handleRequest(Request request) { System.out.println("Button is handling the event.\n"); } - - - public boolean Panel.acceptRequest(Request request) { + + + public boolean Panel.acceptRequest(Request request) { System.out.println("Panel is asked to accept the request..."); if (request instanceof Click) { Click click = (Click) request; return (click.hasCtrlMask()); - } + } return false; - } - + } + public void Panel.handleRequest(Request event) { System.out.println("Panel is handling the event.\n"); } - public boolean Frame.acceptRequest(Request request) { + public boolean Frame.acceptRequest(Request request) { System.out.println("Frame is asked to accept the request..."); if (request instanceof Click) { Click click = (Click) request; return (click.hasAltMask()); - } + } return false; - } - + } + public void Frame.handleRequest(Request event) { System.out.println("Frame is handling the event.\n"); } diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/chainOfResponsibility/aspectj/Frame.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/chainOfResponsibility/aspectj/Frame.java index c91e12c4a..b6c8cb52c 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/chainOfResponsibility/aspectj/Frame.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/chainOfResponsibility/aspectj/Frame.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.chainOfResponsibility.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -17,7 +17,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.chainOfResponsibility.aspectj; * The Original Code is ca.ubc.cs.spl.aspectPatterns. * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * * Contributor(s): */ @@ -56,6 +56,3 @@ public class Frame extends JFrame { }); } } - - -
\ No newline at end of file diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/chainOfResponsibility/aspectj/Main.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/chainOfResponsibility/aspectj/Main.java index 28add4a5f..7ad83b716 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/chainOfResponsibility/aspectj/Main.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/chainOfResponsibility/aspectj/Main.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.chainOfResponsibility.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,37 +15,37 @@ package ca.ubc.cs.spl.aspectPatterns.examples.chainOfResponsibility.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): - */ + * Contributor(s): + */ /** * Implements a GUI-motivated example for the Chain Of Rspsonsibility design - * pattern.<p> + * pattern.<p> * * Intent: <i>Avoid coupling the sender of a request to its receiver by giving - * more than one object a chance to handle the request. Chain the receiving + * more than one object a chance to handle the request. Chain the receiving * objects and pass the request along the chain until an object handles it. * </i><p> * - * Participatng objects are a <code>Frame</code>, a <code>Panel</code>, and + * Participatng objects are a <code>Frame</code>, a <code>Panel</code>, and * <code>Button</code> * * A click on the button triggers an event (request) that gets passed along * the widget hierarchy (button -> panel -> frame). * * The <code>Handler</code> interface defines the <code>handleRequest()</code> - * method for asking an object if it is willing to handle the request. + * method for asking an object if it is willing to handle the request. * * Clicking the button will start a request, that gets passed on - * along the following chain: button, panel, frame. Depending on - * whether the ALT, SHIFT, or CTRL keys are pressed during the + * along the following chain: button, panel, frame. Depending on + * whether the ALT, SHIFT, or CTRL keys are pressed during the * button click, a different object in the chain will handle the * request: - * + * * <ol> * <li> If the SHIFT key is pressed, Button will handle the request * <li> If the CTRL key is pressed, Panel will handle the request @@ -54,22 +54,22 @@ package ca.ubc.cs.spl.aspectPatterns.examples.chainOfResponsibility.aspectj; * an exception will be raised. * </ol> * - * <p><i>This is the AspectJ version.</i><p> + * <p><i>This is the AspectJ version.</i><p> * * In this implementation, the former <i>ConcreteHandlers</i> do not * contain any pattern code at all. The shared logic for forwarding requests - * is implemented once in the reusable abstract library aspect. The current + * is implemented once in the reusable abstract library aspect. The current * implementation does require some casts (as generally the case in AspectJ * solutions that employ similar approaches), due to the lack of support for * generics. - * + * * For limitations of this approach, see the ChainOfResponsibilityProtocol * library aspect. * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 01/27/04 - * + * * @see Button * @see Panel * @see Frame @@ -78,31 +78,31 @@ package ca.ubc.cs.spl.aspectPatterns.examples.chainOfResponsibility.aspectj; */ public class Main { - + /** * Implements a GUI-motivated example for the Chain Of Responsibility design - * pattern.<p> + * pattern.<p> * - * In this implementation, the request is handled by the panel if the - * CTRL mask is active (i.e., if the CTRL key was pressed while the button + * In this implementation, the request is handled by the panel if the + * CTRL mask is active (i.e., if the CTRL key was pressed while the button * was clicked). If the SHIFT mask is active, the frame handles the request. - * Otherwise, the request is unhandled. + * Otherwise, the request is unhandled. * * @param args command line parameters, unused */ - + public static void main(String[] args) { Frame frame = new Frame("Chain of Responsibility pattern example"); Panel panel = new Panel(); - Button button = new Button("Click me to see the pattern in action! Use <SHIFT>, <CTRL>, and <ALT> during clicks to see different behavior"); - + Button button = new Button("Click me to see the pattern in action! Use <SHIFT>, <CTRL>, and <ALT> during clicks to see different behavior"); + ClickChain.aspectOf().setSuccessor(button, panel); - ClickChain.aspectOf().setSuccessor(panel, frame); - + ClickChain.aspectOf().setSuccessor(panel, frame); + frame.getContentPane().add(panel); panel.add(button); - + frame.pack(); - frame.setVisible(true); + frame.setVisible(true); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/chainOfResponsibility/aspectj/Panel.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/chainOfResponsibility/aspectj/Panel.java index 1e268a840..cdc577be1 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/chainOfResponsibility/aspectj/Panel.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/chainOfResponsibility/aspectj/Panel.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.chainOfResponsibility.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,16 +15,16 @@ package ca.ubc.cs.spl.aspectPatterns.examples.chainOfResponsibility.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ - + import javax.swing.*; - -/** + +/** * A regular GUI JPanel with no modifications * * @author Jan Hannemann @@ -34,4 +34,3 @@ import javax.swing.*; */ public class Panel extends JPanel {} -
\ No newline at end of file diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/chainOfResponsibility/java/Button.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/chainOfResponsibility/java/Button.java index 5513ea367..91868b43e 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/chainOfResponsibility/java/Button.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/chainOfResponsibility/java/Button.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.chainOfResponsibility.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,18 +15,18 @@ package ca.ubc.cs.spl.aspectPatterns.examples.chainOfResponsibility.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ - + import javax.swing.*; import java.awt.event.*; -/** - * GUI element at the start of the responsibility chain. A click on the +/** + * GUI element at the start of the responsibility chain. A click on the * button starts a request. The <code>Button</code> will only handle the * request if the SHIFT key was pressed when the button was clicked. * @@ -36,39 +36,39 @@ import java.awt.event.*; * */ -public class Button extends JButton implements ClickHandler { - +public class Button extends JButton implements ClickHandler { + /** * the successor in the chain of responsibility */ protected ClickHandler successor; - /** - * Creates a <code>Button</code> with a given label and successor. + /** + * Creates a <code>Button</code> with a given label and successor. * * @param label The button label * @param successor The successor in the chain of responsibility - */ - + */ + public Button(String label, ClickHandler successor) { super(label); - this.successor = successor; + this.successor = successor; this.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent ae) { handleClick(new Click(ae)); } }); - } - - /** + } + + /** * Implements the method to handle requests as defined by the * <code>ClickHandler</code> interface. The request is only handled here * if the SHIFT key was pressed. - * + * * @see ClickHandler - */ - + */ + public void handleClick(Click click) { System.out.println("Button is asked to handle the request..."); if (click.hasShiftMask()) { @@ -79,8 +79,6 @@ public class Button extends JButton implements ClickHandler { } else { successor.handleClick(click); } - } + } } } - -
\ No newline at end of file diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/chainOfResponsibility/java/Click.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/chainOfResponsibility/java/Click.java index 334fbfac5..98f2e3e3a 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/chainOfResponsibility/java/Click.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/chainOfResponsibility/java/Click.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.chainOfResponsibility.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,20 +15,20 @@ package ca.ubc.cs.spl.aspectPatterns.examples.chainOfResponsibility.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ - + import java.awt.event.ActionEvent; -/** +/** * Represents the <i>Request</i> in the <i>Chain of Responsibility</i> * pattern, which is a button click in this case. Provides methods for * accessing key masks associated with the click (to find out whether - * the SHIFT, ALT, or CTRL keys were pressed during the click). + * the SHIFT, ALT, or CTRL keys were pressed during the click). * * @author Jan Hannemann * @author Gregor Kiczales @@ -36,58 +36,56 @@ import java.awt.event.ActionEvent; * */ -public class Click { - +public class Click { + /** * the ActionEvent that describes this Click */ protected ActionEvent description; - /** + /** * Creates a <code>Click</code> described by the provided <code> - * ActionEvent</code>. + * ActionEvent</code>. * * @param description the ActionEvent that describes this Click - */ - + */ + public Click(ActionEvent description) { - this.description = description; - } - - /** + this.description = description; + } + + /** * Convenience method for inquiring whether SHIFT was pressed while - * the click occured. - * + * the click occured. + * * @return whether the SHIFT key was pressed when the click occured - */ - + */ + public boolean hasShiftMask() { return ((description.getModifiers() & ActionEvent.SHIFT_MASK) != 0 ); } - /** + /** * Convenience method for inquiring whether ALT was pressed while - * the click occured. - * + * the click occured. + * * @return whether the ALT key was pressed when the click occured - */ - + */ + public boolean hasAltMask() { return ((description.getModifiers() & ActionEvent.ALT_MASK) != 0 ); } - /** + /** * Convenience method for inquiring whether CTRL was pressed while - * the click occured. - * + * the click occured. + * * @return whether the CTRL key was pressed when the click occured - */ - + */ + public boolean hasCtrlMask() { return ((description.getModifiers() & ActionEvent.CTRL_MASK) != 0 ); } } - -
\ No newline at end of file diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/chainOfResponsibility/java/ClickHandler.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/chainOfResponsibility/java/ClickHandler.java index c0436fc38..5f39f272a 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/chainOfResponsibility/java/ClickHandler.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/chainOfResponsibility/java/ClickHandler.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.chainOfResponsibility.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,16 +15,16 @@ package ca.ubc.cs.spl.aspectPatterns.examples.chainOfResponsibility.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ - -/** + +/** * Defines the interface for letting <i>ConcreteHandlers</i> handle a request - * (here: a button click). + * (here: a button click). * * @author Jan Hannemann * @author Gregor Kiczales @@ -35,4 +35,3 @@ package ca.ubc.cs.spl.aspectPatterns.examples.chainOfResponsibility.java; public interface ClickHandler { public void handleClick(Click click); } -
\ No newline at end of file diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/chainOfResponsibility/java/Frame.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/chainOfResponsibility/java/Frame.java index 10e1ac2a5..4c7d3a0e9 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/chainOfResponsibility/java/Frame.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/chainOfResponsibility/java/Frame.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.chainOfResponsibility.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,23 +15,23 @@ package ca.ubc.cs.spl.aspectPatterns.examples.chainOfResponsibility.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ - + import javax.swing.JFrame; import java.awt.event.WindowEvent; -import java.awt.event.WindowAdapter; +import java.awt.event.WindowAdapter; -/** - * Represents a regular GUI frame modified to play its role in the +/** + * Represents a regular GUI frame modified to play its role in the * <i>Chain of Responisiblity</i> pattern, i.e. to handle requests and/or * forward them to its successor in the chain. - * + * * Requests are only handled if the ALT key is pressed during a click. * * @author Jan Hannemann @@ -49,31 +49,31 @@ public class Frame extends JFrame implements ClickHandler { protected ClickHandler successor; - /** - * Creates a <code>Frame</code> with a given title that responds + /** + * Creates a <code>Frame</code> with a given title that responds * properly to <code>WindowClosing<code> events. The frame * does not have a successor and handles request that it receives. * * @param title the frame title - */ - + */ + public Frame(String title) { super(title); - + this.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); - } - - /** + } + + /** * Implements the method to handle requests as defined by the * <code>ClickHandler</code> interface. The request is only handled here * if the ALT key was pressed. - * + * * @see ClickHandler - */ + */ public void handleClick(Click click) { System.out.println("Frame is asked to handle the request..."); @@ -85,9 +85,6 @@ public class Frame extends JFrame implements ClickHandler { } else { successor.handleClick(click); } - } + } } } - - -
\ No newline at end of file diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/chainOfResponsibility/java/Main.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/chainOfResponsibility/java/Main.java index fda1db4e3..533a1da0a 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/chainOfResponsibility/java/Main.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/chainOfResponsibility/java/Main.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.chainOfResponsibility.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,39 +15,39 @@ package ca.ubc.cs.spl.aspectPatterns.examples.chainOfResponsibility.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): - */ + * Contributor(s): + */ /** * Implements a GUI-motivated example for the Chain Of Rspsonsibility design - * pattern.<p> + * pattern.<p> * * Intent: <i>Avoid coupling the sender of a request to its receiver by giving - * more than one object a chance to handle the request. Chain the receiving + * more than one object a chance to handle the request. Chain the receiving * objects and pass the request along the chain until an object handles it. * </i><p> * - * Participatng objects are a <code>Frame</code>, a <code>Panel</code>, and + * Participatng objects are a <code>Frame</code>, a <code>Panel</code>, and * <code>Button</code> * * A click on the button triggers an event (request) that gets passed along * the widget hierarchy (button -> panel -> frame). * * The <code>Handler</code> interface defines the <code>handleRequest()</code> - * method for asking an object if it is willing to handle the request. + * method for asking an object if it is willing to handle the request. * * If an object chooses not to handle a click, the event gets forwarded to - * the the object's successor. If such a successor does not exist, an - * appropriate message is shown. + * the the object's successor. If such a successor does not exist, an + * appropriate message is shown. * - * <p><i>This is the Java version.</i><p> + * <p><i>This is the Java version.</i><p> * - * In this version, it is not possible to extract the common code for - * the case that the object does not want to handle the click into the + * In this version, it is not possible to extract the common code for + * the case that the object does not want to handle the click into the * <code>ClickHandler</code> interface. The reason for this is that this would * turn <code>ClickHandler</code> into an abstract class. Since Java * does not support multiple inheritance and the individual <code> @@ -58,7 +58,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.chainOfResponsibility.java; * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 01/27/04 - * + * * @see Button * @see Panel * @see Frame @@ -66,18 +66,18 @@ package ca.ubc.cs.spl.aspectPatterns.examples.chainOfResponsibility.java; */ public class Main { - + /** - * Implements the driver for the chain of responisbility example. - * It creates a simple GUI consisting of a <code>Button</code> in a - * <code>Panel</code> in a <code>Frame</code>. + * Implements the driver for the chain of responisbility example. + * It creates a simple GUI consisting of a <code>Button</code> in a + * <code>Panel</code> in a <code>Frame</code>. * * Clicking the button will start a request, that gets passed on - * along the following chain: button, panel, frame. Depending on - * whether the ALT, SHIFT, or CTRL keys are pressed during the + * along the following chain: button, panel, frame. Depending on + * whether the ALT, SHIFT, or CTRL keys are pressed during the * button click, a different object in the chain will handle the * request: - * + * * <ol> * <li> If the SHIFT key is pressed, Button will handle the request * <li> If the CTRL key is pressed, Panel will handle the request @@ -85,18 +85,18 @@ public class Main { * <li> If no keys are pressed, the request will not be handled and * an exception will be raised. * </ol> - */ + */ + + public static void main(String[] args) { - public static void main(String[] args) { - Frame frame = new Frame("Chain of Responsibility"); Panel panel = new Panel(frame); - Button button = new Button("Click me to see the pattern in action! Use <SHIFT>, <CTRL>, and <ALT> during clicks to see different behavior", panel); - + Button button = new Button("Click me to see the pattern in action! Use <SHIFT>, <CTRL>, and <ALT> during clicks to see different behavior", panel); + frame.getContentPane().add(panel); panel.add(button); - + frame.pack(); frame.setVisible(true); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/chainOfResponsibility/java/Panel.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/chainOfResponsibility/java/Panel.java index 30ed13378..e68f11af3 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/chainOfResponsibility/java/Panel.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/chainOfResponsibility/java/Panel.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.chainOfResponsibility.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,17 +15,17 @@ package ca.ubc.cs.spl.aspectPatterns.examples.chainOfResponsibility.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ - + import javax.swing.*; -/** - * Represents a regular GUI panel modified to play its role in the +/** + * Represents a regular GUI panel modified to play its role in the * <i>Chain of Responisiblity</i> pattern, i.e. to handle requests and/or * forward them to its successor in the chain. * @@ -37,7 +37,7 @@ import javax.swing.*; * */ -public class Panel extends JPanel implements ClickHandler { +public class Panel extends JPanel implements ClickHandler { /** * the successor in the chain of responsibility @@ -45,25 +45,25 @@ public class Panel extends JPanel implements ClickHandler { protected ClickHandler successor; - /** - * Creates a <code>Panel</code> with a given successor. + /** + * Creates a <code>Panel</code> with a given successor. * * @param successor The successor in the chain of responsibility - */ - + */ + public Panel(ClickHandler successor) { super(); this.successor = successor; } - - /** + + /** * Implements the method to handle requests as defined by the * <code>ClickHandler</code> interface. The request is only handled here. * if the CTRL key was pressed. - * + * * @see ClickHandler - */ + */ public void handleClick(Click click) { System.out.println("Panel is asked to handle the request..."); @@ -75,7 +75,6 @@ public class Panel extends JPanel implements ClickHandler { } else { successor.handleClick(click); } - } + } } } -
\ No newline at end of file diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/command/aspectj/Button.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/command/aspectj/Button.java index 4bdba0936..d13f90428 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/command/aspectj/Button.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/command/aspectj/Button.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.command.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -17,7 +17,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.command.aspectj; * The Original Code is ca.ubc.cs.spl.aspectPatterns. * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * * Contributor(s): */ @@ -60,4 +60,4 @@ public class Button extends JButton { */ public void clicked() {} -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/command/aspectj/ButtonCommand.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/command/aspectj/ButtonCommand.java index 573bcda5e..1f8bc730b 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/command/aspectj/ButtonCommand.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/command/aspectj/ButtonCommand.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.command.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,38 +15,37 @@ package ca.ubc.cs.spl.aspectPatterns.examples.command.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ import ca.ubc.cs.spl.aspectPatterns.patternLibrary.Command; import ca.ubc.cs.spl.aspectPatterns.patternLibrary.CommandReceiver; /** - * Implements a sample command. This one prints a short message to + * Implements a sample command. This one prints a short message to * <code>System.out</code> whenever it executes. The message is - * <quote>"ButtonCommand executed"</quote>. + * <quote>"ButtonCommand executed"</quote>. * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/06/04 */ -public class ButtonCommand implements Command { +public class ButtonCommand implements Command { private Printer printer = new Printer(); - + /** - * Implements a sample command. This one prints a short message to + * Implements a sample command. This one prints a short message to * <code>System.out</code> whenever it executes. The message is - * <quote>"ButtonCommand executed"</quote>. - */ - + * <quote>"ButtonCommand executed"</quote>. + */ + public void executeCommand(CommandReceiver receiver ) { printer.println("ButtonCommand executed"); - } + } } - diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/command/aspectj/ButtonCommand2.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/command/aspectj/ButtonCommand2.java index 393c721eb..91b91babc 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/command/aspectj/ButtonCommand2.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/command/aspectj/ButtonCommand2.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.command.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -17,7 +17,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.command.aspectj; * The Original Code is ca.ubc.cs.spl.aspectPatterns. * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * * Contributor(s): */ @@ -37,4 +37,3 @@ package ca.ubc.cs.spl.aspectPatterns.examples.command.aspectj; */ public class ButtonCommand2 {} - diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/command/aspectj/ButtonCommanding.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/command/aspectj/ButtonCommanding.java index a53f98fa9..defb593a1 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/command/aspectj/ButtonCommanding.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/command/aspectj/ButtonCommanding.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.command.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,26 +15,26 @@ package ca.ubc.cs.spl.aspectPatterns.examples.command.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ import ca.ubc.cs.spl.aspectPatterns.patternLibrary.CommandProtocol; import ca.ubc.cs.spl.aspectPatterns.patternLibrary.Command; import ca.ubc.cs.spl.aspectPatterns.patternLibrary.CommandInvoker; -import ca.ubc.cs.spl.aspectPatterns.patternLibrary.CommandReceiver; +import ca.ubc.cs.spl.aspectPatterns.patternLibrary.CommandReceiver; import java.io.PrintStream; /** * Sets up the Command pattern. - * + * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/06/04 - * + * * @see Button */ @@ -45,28 +45,27 @@ public aspect ButtonCommanding extends CommandProtocol { declare parents: ButtonCommand implements Command; // Unneccessay declare parents: ButtonCommand2 implements Command; // "Making" a class // a Command - + /** - * Implements a sample <i>Command</i> for the ButtonCommand2 class. - * This one prints a short message to <code>System.out</code> + * Implements a sample <i>Command</i> for the ButtonCommand2 class. + * This one prints a short message to <code>System.out</code> * whenever it executes. The message is - * <quote>"ButtonCommand number 2 executed"</quote>. + * <quote>"ButtonCommand number 2 executed"</quote>. */ - + public void ButtonCommand2.executeCommand(CommandReceiver receiver) { ((Printer) receiver).println("ButtonCommand number 2 executed"); - } + } /** * The join points after which to execute the command. - * This replaces the normally scattered myCommand.execute() calls. + * This replaces the normally scattered myCommand.execute() calls. * In this example, a call to <code>Button.clicked()</code> triggers * the execution of the command. * * @param invoker the object invoking the command */ - protected pointcut commandTrigger(CommandInvoker invoker): + protected pointcut commandTrigger(CommandInvoker invoker): call(void Button.clicked()) && target(invoker); } - diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/command/aspectj/Main.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/command/aspectj/Main.java index e3953d23d..5480495e6 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/command/aspectj/Main.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/command/aspectj/Main.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.command.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,43 +15,43 @@ package ca.ubc.cs.spl.aspectPatterns.examples.command.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ - -import javax.swing.JFrame; + +import javax.swing.JFrame; import javax.swing.JPanel; import java.awt.event.WindowAdapter; -import java.awt.event.WindowEvent; +import java.awt.event.WindowEvent; import ca.ubc.cs.spl.aspectPatterns.patternLibrary.Command; /** - * Implements the driver for the command design pattern example.<p> + * Implements the driver for the command design pattern example.<p> * - * Intent: <i>Encapsulate a request as an object, thereby letting you - * parameterize clients with different requests, queue or log requests, + * Intent: <i>Encapsulate a request as an object, thereby letting you + * parameterize clients with different requests, queue or log requests, * and support undoable operations.</i><p> * * Participating objects are <code>Button</code>s as <i>Invoker</i>s, - * and a <code>ButtonCommand</code> and <code>ButtonCommand2</code> as + * and a <code>ButtonCommand</code> and <code>ButtonCommand2</code> as * two <i>ConcreteCommand</i>s. * - * This example creates a simple GUI with three buttons. Each button has a - * command associated with it that is executed when the button is pressed. + * This example creates a simple GUI with three buttons. Each button has a + * command associated with it that is executed when the button is pressed. * Button1 and button3 have the same command, button2 has a different one. * - * <p><i>This is the Java version.</i><p> + * <p><i>This is the Java version.</i><p> * - * This version of the pattern lets the developer specify what should trigger + * This version of the pattern lets the developer specify what should trigger * a call to <code>executeCommand()</code>, without changing the <i>Invoker * </i> code. * - * Neither <i>Commands</i> nor <i>Invoker</i> have to know of their - * involvement in the pattern and can actually act as both. + * Neither <i>Commands</i> nor <i>Invoker</i> have to know of their + * involvement in the pattern and can actually act as both. * <code>ButtonCommanding2</code> is an example of a <i>Command</i> that * is unaware of its role. In such cases, the concrete pattern instance * aspect assigns the role and defines the <i>Command</i>'s behavior. @@ -59,46 +59,46 @@ import ca.ubc.cs.spl.aspectPatterns.patternLibrary.Command; * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/06/04 - * + * * @see Button * @see ButtonCommand * @see Buttoncommand2 */ public class Main extends JFrame { - + /** - * This example creates a simple GUI with three buttons. Each - * button has a <i>Command</i> associated with it that is executed when - * the button is pressed. Button1 and button3 have the same command, + * This example creates a simple GUI with three buttons. Each + * button has a <i>Command</i> associated with it that is executed when + * the button is pressed. Button1 and button3 have the same command, * button2 has a different one. */ public static void main(String[] args) { Button button1 = new Button("Button1"); Button button2 = new Button("Button2"); - Button button3 = new Button("Button3"); - + Button button3 = new Button("Button3"); + Command com1 = new ButtonCommand(); Command com2 = new ButtonCommand2(); - + JPanel pane = new JPanel(); - pane.add(button1); + pane.add(button1); ButtonCommanding.aspectOf().setCommand(button1, com1); - + pane.add(button2); ButtonCommanding.aspectOf().setCommand(button2, com2); ButtonCommanding.aspectOf().setReceiver(com2, new Printer()); - + pane.add(button3); ButtonCommanding.aspectOf().setCommand(button3, com1); - - JFrame frame = new JFrame("Command Pattern Example"); - + + JFrame frame = new JFrame("Command Pattern Example"); + frame.getContentPane().add(pane); frame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) {System.exit(0);} - }); + }); frame.pack(); frame.setVisible(true); } } diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/command/aspectj/Printer.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/command/aspectj/Printer.java index edc7d9d39..017142d62 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/command/aspectj/Printer.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/command/aspectj/Printer.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.command.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -17,7 +17,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.command.aspectj; * The Original Code is ca.ubc.cs.spl.aspectPatterns. * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * * Contributor(s): */ diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/command/java/Button.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/command/java/Button.java index 3e5784fcd..02de439ce 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/command/java/Button.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/command/java/Button.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.command.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,19 +15,19 @@ package ca.ubc.cs.spl.aspectPatterns.examples.command.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ - + import javax.swing.JButton; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; /** - * Implements a simple extension of JButton that supplies its own + * Implements a simple extension of JButton that supplies its own * ActionListener and calls its own <code>clicked()</code> method * whenever the button is pressed. This method calls the <code> * executeCommand()</code> method on the button's associated <i>Command</i> @@ -44,9 +44,9 @@ public class Button extends JButton { /** * the command object associated with this button */ - + protected Command command; - + /** * Creates a new button with the provided label * @@ -58,23 +58,23 @@ public class Button extends JButton { this.setActionCommand(label); this.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { - clicked(); + clicked(); } - }); + }); } /** - * Calls <code>ececuteCommand()</code> on the associated - * command object. This method gets called whenever the + * Calls <code>ececuteCommand()</code> on the associated + * command object. This method gets called whenever the * button is pressed. */ - + public void clicked() { if (command != null) { command.executeCommand(); } } - + /** * Sets the associated command object for this button * @@ -83,5 +83,5 @@ public class Button extends JButton { public void setCommand(Command command) { this.command = command; - } -}
\ No newline at end of file + } +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/command/java/ButtonCommand.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/command/java/ButtonCommand.java index 9d0bb69d1..962d9648b 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/command/java/ButtonCommand.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/command/java/ButtonCommand.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.command.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,17 +15,17 @@ package ca.ubc.cs.spl.aspectPatterns.examples.command.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** - * Implements a sample command. This one prints a short message to + * Implements a sample command. This one prints a short message to * <code>System.out</code> whenever it executes. The message is - * <quote>"ButtonCommand executed"</quote>. + * <quote>"ButtonCommand executed"</quote>. * * @author Jan Hannemann * @author Gregor Kiczales @@ -33,14 +33,13 @@ package ca.ubc.cs.spl.aspectPatterns.examples.command.java; */ public class ButtonCommand implements Command { - + /** - * Implements a sample command. This one prints a short message to + * Implements a sample command. This one prints a short message to * <code>System.out</code> whenever it executes. The message is - * <quote>"ButtonCommand executed"</quote>. + * <quote>"ButtonCommand executed"</quote>. */ public void executeCommand() { System.out.println("ButtonCommand executed"); - } + } } - diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/command/java/ButtonCommand2.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/command/java/ButtonCommand2.java index 3844bda1a..1d63824db 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/command/java/ButtonCommand2.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/command/java/ButtonCommand2.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.command.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,33 +15,32 @@ package ca.ubc.cs.spl.aspectPatterns.examples.command.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** - * Implements a sample command. This one prints a short message to + * Implements a sample command. This one prints a short message to * <code>System.out</code> whenever it executes. The message is - * <quote>"ButtonCommand number 2 executed"</quote>. + * <quote>"ButtonCommand number 2 executed"</quote>. * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/06/04 */ - + public class ButtonCommand2 implements Command { /** - * Implements a sample command. This one prints a short message to + * Implements a sample command. This one prints a short message to * <code>System.out</code> whenever it executes. The message is - * <quote>"ButtonCommand number 2 executed"</quote>. + * <quote>"ButtonCommand number 2 executed"</quote>. */ - + public void executeCommand() { System.out.println("ButtonCommand number 2 executed"); - } + } } - diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/command/java/Command.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/command/java/Command.java index d441f43ab..2bd85052f 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/command/java/Command.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/command/java/Command.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.command.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -17,7 +17,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.command.java; * The Original Code is ca.ubc.cs.spl.aspectPatterns. * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * * Contributor(s): */ diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/command/java/Main.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/command/java/Main.java index 3a81bda07..a1c922e51 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/command/java/Main.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/command/java/Main.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.command.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,41 +15,41 @@ package ca.ubc.cs.spl.aspectPatterns.examples.command.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ - -import javax.swing.JFrame; + +import javax.swing.JFrame; import javax.swing.JPanel; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; /** - * Implements the driver for the command design pattern example.<p> + * Implements the driver for the command design pattern example.<p> * - * Intent: <i>Encapsulate a request as an object, thereby letting you - * parameterize clients with different requests, queue or log requests, + * Intent: <i>Encapsulate a request as an object, thereby letting you + * parameterize clients with different requests, queue or log requests, * and support undoable operations.</i><p> * * Participating objects are <code>Button</code>s as <i>Invoker</i>s, - * and a <code>ButtonCommand</code> and <code>ButtonCommand2</code> as + * and a <code>ButtonCommand</code> and <code>ButtonCommand2</code> as * two <i>ConcreteCommand</i>s. * - * This example creates a simple GUI with three buttons. Each button has a - * command associated with it that is executed when the button is pressed. + * This example creates a simple GUI with three buttons. Each button has a + * command associated with it that is executed when the button is pressed. * Button1 and button3 have the same command, button2 has a different one. * - * <p><i>This is the Java version.</i><p> + * <p><i>This is the Java version.</i><p> * * Both commands and invoker have to have pattern-related code. * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/06/04 - * + * * @see Button * @see Command * @see ButtonCommand @@ -57,41 +57,41 @@ import java.awt.event.WindowEvent; */ public class Main { - + /** - * This example creates a simple GUI with three buttons. Each button has a - * command associated with it that is executed when the button is pressed. + * This example creates a simple GUI with three buttons. Each button has a + * command associated with it that is executed when the button is pressed. * Button1 and button3 have the same command, button2 has a different one. */ - - public static void main(String[] args) { - + + public static void main(String[] args) { + Button button1 = new Button("Print Date"); Button button2 = new Button("Command 1"); - Button button3 = new Button("Command 2"); - + Button button3 = new Button("Command 2"); + Command com1 = new ButtonCommand(); Command com2 = new ButtonCommand2(); JPanel pane = new JPanel(); - pane.add(button1); + pane.add(button1); button1.setCommand(com1); - + pane.add(button2); button2.setCommand(com2); - + pane.add(button3); button3.setCommand(com1); - + // Note: Can not have two commands. // That is within the pattern specification - JFrame frame = new JFrame("Command Pattern Example"); - + JFrame frame = new JFrame("Command Pattern Example"); + frame.getContentPane().add(pane); frame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) {System.exit(0);} - }); + }); frame.pack(); frame.setVisible(true); } diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/composite/aspectj/Directory.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/composite/aspectj/Directory.java index d40f6363b..90936634f 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/composite/aspectj/Directory.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/composite/aspectj/Directory.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.composite.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,34 +15,34 @@ package ca.ubc.cs.spl.aspectPatterns.examples.composite.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ - + /** - * Implements a <i>Composite</i>. Note that in this AspectJ version, the + * Implements a <i>Composite</i>. Note that in this AspectJ version, the * participants are decoupled from the pattern. Thus, this composite does * not need to implement an interface or even keep track of its children. * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/06/04 - * - * @see Component + * + * @see Component * @see File */ - -public class Directory { + +public class Directory { /** * stores the name of this Directory */ protected String name; - + /** * Creates a new Directory with a given name * @@ -52,7 +52,7 @@ public class Directory { public Directory(String name) { this.name = name; } - + /** * Overwrites the <code>toString()</code> method from <code>Object</code> * to print information about this Directory @@ -62,4 +62,3 @@ public class Directory { return ("Directory: "+name); } } -
\ No newline at end of file diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/composite/aspectj/File.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/composite/aspectj/File.java index 6231b140b..e750d48cf 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/composite/aspectj/File.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/composite/aspectj/File.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.composite.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,34 +15,34 @@ package ca.ubc.cs.spl.aspectPatterns.examples.composite.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ - + /** - * Implements a <i>Leaf</i>. Note that in this AspectJ version, the + * Implements a <i>Leaf</i>. Note that in this AspectJ version, the * participants are decoupled from the pattern. Thus, this leaf does * not need to implement the <i>Component</i> interface. * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/06/04 - * - * @see Component + * + * @see Component * @see Directory */ - -public class File { - + +public class File { + /** * stores the name for this File */ protected String name; - + /** * stores the size for this File */ @@ -59,7 +59,7 @@ public class File { this.name = name; this.size = size; } - + /** * Overwrites the <code>toString()</code> method from <code>Object</code> * to print information about this object @@ -68,10 +68,10 @@ public class File { public String toString() { return ("File: "+name+" ("+size+" KB)"); } - + /** * Returns the size of this File - * + * * @return the size of this File (on disk) */ public int getSize() { diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/composite/aspectj/FileSystemComposition.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/composite/aspectj/FileSystemComposition.java index 559c84d78..6bb15e9c1 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/composite/aspectj/FileSystemComposition.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/composite/aspectj/FileSystemComposition.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.composite.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,36 +15,36 @@ package ca.ubc.cs.spl.aspectPatterns.examples.composite.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ - -import java.io.PrintStream; -import java.util.Enumeration; + +import java.io.PrintStream; +import java.util.Enumeration; import ca.ubc.cs.spl.aspectPatterns.patternLibrary.CompositeProtocol; /** - * Implements a concrete instance of the Composite design pattern.<p> - * - * It maintains the mapping between <i>Composite</i>s and their children, - * defines the <i>Component</i>, <i>Composite</i>, and <i>Leaf</i> roles, - * and provides facilities to implement methods that work on the whole + * Implements a concrete instance of the Composite design pattern.<p> + * + * It maintains the mapping between <i>Composite</i>s and their children, + * defines the <i>Component</i>, <i>Composite</i>, and <i>Leaf</i> roles, + * and provides facilities to implement methods that work on the whole * aggregate structure. * - * <p><i>This is the AspectJ version.</i><p> + * <p><i>This is the AspectJ version.</i><p> * * This concrete subaspect does the following things: <UL> * <LI> Defines which classes are Components and Leafs * <LI> Defines methods that operate on the whole aggregate * structure (using visitors) * </UL> - * + * * Note that implementing the two visitors is just done for fun. Similar * implementations are possible in the OO case of course, although that would - * require changing the <i>Components</i>. + * require changing the <i>Components</i>. * * @author Jan Hannemann * @author Gregor Kiczales @@ -53,20 +53,20 @@ import ca.ubc.cs.spl.aspectPatterns.patternLibrary.CompositeProtocol; public aspect FileSystemComposition extends CompositeProtocol { - /** + /** * Assigns the Composite role to <code>Directory</code> */ - + declare parents: Directory implements Composite; - /** + /** * Assigns the Leaf role to <code>File</code> */ declare parents: File implements Leaf; - - - + + + // Test 1: Printing the stucture using a visitor @@ -86,7 +86,7 @@ public aspect FileSystemComposition extends CompositeProtocol { } /** - * Provides a client-accessible method that pretty-prints the + * Provides a client-accessible method that pretty-prints the * structure of the aggregate structure using a Visitor * * @param s the PrintStream to print to @@ -95,11 +95,11 @@ public aspect FileSystemComposition extends CompositeProtocol { public void Component.printStructure(PrintStream s) { indent(); s.println("<Component>"+this); - } - + } + /** - * Implements <code>printStructure</code> for Composites: The indent - * is appropriately updated and the method call is forwarded to all + * Implements <code>printStructure</code> for Composites: The indent + * is appropriately updated and the method call is forwarded to all * children. * * @param s the PrintStream to print to @@ -109,8 +109,8 @@ public aspect FileSystemComposition extends CompositeProtocol { indent(); s.println("<Composite>"+this); indent +=4; - FileSystemComposition.aspectOf().recurseOperation(this, new Visitor() { - public void doOperation(Component c) { c.printStructure(s); } + FileSystemComposition.aspectOf().recurseOperation(this, new Visitor() { + public void doOperation(Component c) { c.printStructure(s); } } ); indent -=4; } @@ -125,47 +125,47 @@ public aspect FileSystemComposition extends CompositeProtocol { indent(); s.println("<Leaf>"+this); } - - - - - + + + + + // Test2: Collecting statistics on the structure (aggregation) - + /** - * Provides a client-accessible method that pretty-prints the - * structure of the aggregate structure using a FunctionVisitor. + * Provides a client-accessible method that pretty-prints the + * structure of the aggregate structure using a FunctionVisitor. * Calculates the sum of all File (<i>Leaf</i>) sizes in the structure. * * @returns the sum of <i>Leaf</i> sizes of all elements in this structure - */ - + */ + public int Component.subSum() { return 0; } /** - * Implements <code>subSum()</code> for Composites: The method call + * Implements <code>subSum()</code> for Composites: The method call * is forwarded to all children, then the results are summed up. * * @returns the sum of leaf sizes of all elements in this structure */ - public int Directory.subSum() { + public int Directory.subSum() { Enumeration enum = FileSystemComposition.aspectOf().recurseFunction( - this, new FunctionVisitor() { - public Object doFunction(Component c) { - return new Integer(c.subSum()); + this, new FunctionVisitor() { + public Object doFunction(Component c) { + return new Integer(c.subSum()); } - }); - + }); + int sum = 0; while (enum.hasMoreElements()) { sum += ((Integer) enum.nextElement()).intValue(); } return sum; } - + /** * Implements <code>subSum()</code> for <i>Leaf</i>s: Simply returns * the <i>Leaf</i>'s size. @@ -176,5 +176,4 @@ public aspect FileSystemComposition extends CompositeProtocol { public int File.subSum() { return size; } -} - +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/composite/aspectj/Main.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/composite/aspectj/Main.java index 820faa6c2..81d8ab036 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/composite/aspectj/Main.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/composite/aspectj/Main.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.composite.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -17,7 +17,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.composite.aspectj; * The Original Code is ca.ubc.cs.spl.aspectPatterns. * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * * Contributor(s): */ @@ -138,4 +138,4 @@ import java.util.Enumeration; System.out.println("\n<<< Test completed >>>\n"); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/composite/java/Directory.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/composite/java/Directory.java index dc9b300af..58fe96173 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/composite/java/Directory.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/composite/java/Directory.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.composite.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,14 +15,14 @@ package ca.ubc.cs.spl.aspectPatterns.examples.composite.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ - -import java.util.LinkedList; + +import java.util.LinkedList; /** * Implements a <i>Composite</i>. Children are stored in a linked list. @@ -30,16 +30,16 @@ import java.util.LinkedList; * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/06/04 - * + * * @see File */ public class Directory implements FileSystemComponent { - + /** * stores the children for this Directory (files and subdirectories) */ - + protected LinkedList children = new LinkedList(); // Component interface /** @@ -47,7 +47,7 @@ public class Directory implements FileSystemComponent { */ protected String name; - + /** * Creates a new Directory with a given name * @@ -57,7 +57,7 @@ public class Directory implements FileSystemComponent { public Directory(String name) { this.name = name; } - + /** * Overwrites the <code>toString()</code> method from <code>Object</code> * to print information about this Directory @@ -67,16 +67,16 @@ public class Directory implements FileSystemComponent { return ("Directory: "+name); } - + /** * Adds a child to the component * * @param component the child to add */ - + public void add(FileSystemComponent component) { this.children.add(component); - } + } /** * Removes a child from the component @@ -92,7 +92,7 @@ public class Directory implements FileSystemComponent { * * @param index the position of the child */ - + public FileSystemComponent getChild(int index) { return (FileSystemComponent) children.get(index); } @@ -102,19 +102,18 @@ public class Directory implements FileSystemComponent { * * @returns the number of children of this Directory */ - + public int getChildCount() { return children.size(); } - + /** * Returns the size of this Directory. For simplicity, we define that only * files have a tangible size, so this method returns 0. - * + * * @return the size of the component (on disk) */ public int getSize() { return 0; } } -
\ No newline at end of file diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/composite/java/File.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/composite/java/File.java index 1f71cf941..fff5621d4 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/composite/java/File.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/composite/java/File.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.composite.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,20 +15,20 @@ package ca.ubc.cs.spl.aspectPatterns.examples.composite.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ - + /** * Implements a <i>Leaf</i>. Leafs have no children. * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/06/04 - * + * * @see Directory */ @@ -39,7 +39,7 @@ public class File implements FileSystemComponent { */ protected String name; - + /** * stores the size for this File */ @@ -56,7 +56,7 @@ public class File implements FileSystemComponent { this.name = name; this.size = size; } - + /** * Overwrites the <code>toString()</code> method from <code>Object</code> * to print information about this object @@ -65,8 +65,8 @@ public class File implements FileSystemComponent { public String toString() { return ("File: "+name+" ("+size+" KB)"); } - - + + /** * Adds a child to the Component. Since Files have no * children, this method does nothing. @@ -92,26 +92,26 @@ public class File implements FileSystemComponent { * @param index the position of the child * @return always null, since Files do not have children */ - + public FileSystemComponent getChild(int index) { return null; } /** - * Returns the number of chilren this Component has. Since Files - * are <i>Leaf</i>s, they don't have any children. Thus, this method + * Returns the number of chilren this Component has. Since Files + * are <i>Leaf</i>s, they don't have any children. Thus, this method * returns 0. * * @returns always 0, since Files do not have children */ - + public int getChildCount() { return 0; } - + /** * Returns the size of this File - * + * * @return the size of this File (on disk) */ public int getSize() { diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/composite/java/FileSystemComponent.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/composite/java/FileSystemComponent.java index 1d70078a3..48a74ebc5 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/composite/java/FileSystemComponent.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/composite/java/FileSystemComponent.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.composite.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,13 +15,13 @@ package ca.ubc.cs.spl.aspectPatterns.examples.composite.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ - + /** * Defines the <i>Component</i> interface for the composite design pattern.<p> * The implementation is anologuous to the one presented in GoF. Contemporary @@ -33,19 +33,19 @@ package ca.ubc.cs.spl.aspectPatterns.examples.composite.java; * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/06/04 - * - * @see Directory + * + * @see Directory * @see File */ - -public interface FileSystemComponent { - + +public interface FileSystemComponent { + /** * Adds a child to the component * * @param component the child to add */ - + public void add(FileSystemComponent component); /** @@ -53,7 +53,7 @@ public interface FileSystemComponent { * * @param component the child to remove */ - + public void remove(FileSystemComponent component); /** @@ -61,7 +61,7 @@ public interface FileSystemComponent { * * @param index the position of the child */ - + public FileSystemComponent getChild(int index); /** @@ -69,12 +69,12 @@ public interface FileSystemComponent { * * @returns the number of children of this component */ - + public int getChildCount(); - + /** * Returns the size of this FileSystemComponent - * + * * @return the size of the component (on disk) */ public int getSize(); diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/composite/java/Main.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/composite/java/Main.java index c36597e5f..e5536fd0d 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/composite/java/Main.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/composite/java/Main.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.composite.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,71 +15,71 @@ package ca.ubc.cs.spl.aspectPatterns.examples.composite.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ - + /** - * Implements the driver for the Composite design pattern example.<p> + * Implements the driver for the Composite design pattern example.<p> * - * Intent: <i>Compose objects into tree structures to represent part-whole - * hierarchies. Composite lets clients treat individual objects and + * Intent: <i>Compose objects into tree structures to represent part-whole + * hierarchies. Composite lets clients treat individual objects and * compositions of objects uniformly.</i><p> * * Participating classes are <code>Directory</code>s as <i>Composite</i>s, - * and <code>File</code>s as <i>Leaf</i>s. Both implement the + * and <code>File</code>s as <i>Leaf</i>s. Both implement the * <i>Component</i> interface.<p> * - * This example creates a simple structure as follows: Composite directory1 - * has three children: file1, directory2, and file3. directory2 has file2 + * This example creates a simple structure as follows: Composite directory1 + * has three children: file1, directory2, and file3. directory2 has file2 * as a child. - * + * * Compact notation: directory1(file1, directory2(file2), file3) * - * <p><i>This is the Java version.</i><p> + * <p><i>This is the Java version.</i><p> * - * Every <i>Component</i> and every <i>Leaf</i> needs to know about the + * Every <i>Component</i> and every <i>Leaf</i> needs to know about the * pattern and their in the pattern. * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/06/04 - * + * * @see Component - * @see Directory + * @see Directory * @see File */ - -public class Main { + +public class Main { /** * helper variable to store recursion depth for pretty printing */ - - private static int indent = 0; + + private static int indent = 0; /** * Prints a number of spaces according to the current recursion depth */ - + private static void indent() { for (int i=0; i<indent; i++) System.out.print(" "); } - /** - * Pretty-prints a recursive composite structure + /** + * Pretty-prints a recursive composite structure * * @param comp the component denoting the entry point into the structure */ - - private static void printStructure(FileSystemComponent comp) { + + private static void printStructure(FileSystemComponent comp) { indent(); System.out.println(comp); - indent +=4; + indent +=4; for (int i=0; i<comp.getChildCount(); i++) { printStructure(comp.getChild(i)); } @@ -88,8 +88,8 @@ public class Main { /** - * This example creates a simple structure as follows: Composite directory1 - * has three children: file1, directory2, and file3. directory2 has file2 + * This example creates a simple structure as follows: Composite directory1 + * has three children: file1, directory2, and file3. directory2 has file2 * as a child. */ @@ -102,18 +102,18 @@ public class Main { Directory directory2 = new Directory("Directory2"); File file1 = new File("File1", 123); File file2 = new File("File2", 4556); - File file3 = new File("File3", 16); - + File file3 = new File("File3", 16); + directory1.add(file1); directory1.add(directory2); directory2.add(file2); - directory1.add(file3); + directory1.add(file3); - System.out.println("done."); + System.out.println("done."); System.out.println("This is the Structure:"); - + printStructure(directory1); System.out.println("\n<<< Test completed >>>\n"); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/decorator/aspectj/BracketDecorator.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/decorator/aspectj/BracketDecorator.java index 1f60876f9..820cef7be 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/decorator/aspectj/BracketDecorator.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/decorator/aspectj/BracketDecorator.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.decorator.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,13 +15,13 @@ package ca.ubc.cs.spl.aspectPatterns.examples.decorator.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ - + /** * Adds brackets ("[", "]") before and after the string to decorate. * Acts as a <i>ConcreteDecorator</i> @@ -29,22 +29,22 @@ package ca.ubc.cs.spl.aspectPatterns.examples.decorator.aspectj; * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/11/04 - */ - + */ + public aspect BracketDecorator { - + /** - * Identifies the execution points of interest: all calls to + * Identifies the execution points of interest: all calls to * <code>ConcreteOutput.print(String)</code>. */ - protected pointcut printCall(String s): + protected pointcut printCall(String s): call(public void ConcreteOutput.print(String)) && args(s); /** * Adds brackets before and after the argument string before passing - * the call on to the component this decorator aspect decorates. + * the call on to the component this decorator aspect decorates. * * @param s the string to be decorated. */ @@ -53,4 +53,4 @@ public aspect BracketDecorator { s = "[" + s + "]"; // Decorates the string proceed(s); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/decorator/aspectj/ConcreteOutput.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/decorator/aspectj/ConcreteOutput.java index 851830647..661a8fdac 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/decorator/aspectj/ConcreteOutput.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/decorator/aspectj/ConcreteOutput.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.decorator.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,24 +15,24 @@ package ca.ubc.cs.spl.aspectPatterns.examples.decorator.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ - + /** - * Implements a simple class that provides a <code>print(String)</code> - * method. In this AspectJ implementation, there is no need for a - * <i>Component</i> interface; this class is autonomous and does not need + * Implements a simple class that provides a <code>print(String)</code> + * method. In this AspectJ implementation, there is no need for a + * <i>Component</i> interface; this class is autonomous and does not need * to have pattern-related code. * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/11/04 - */ - + */ + public class ConcreteOutput { /** @@ -44,4 +44,4 @@ public class ConcreteOutput { public void print(String s) { System.out.print(s); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/decorator/aspectj/Main.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/decorator/aspectj/Main.java index 0cec41d93..768bc52c9 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/decorator/aspectj/Main.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/decorator/aspectj/Main.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.decorator.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,22 +15,22 @@ package ca.ubc.cs.spl.aspectPatterns.examples.decorator.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ - + /** - * Implements the driver for the Decorator design pattern example.<p> + * Implements the driver for the Decorator design pattern example.<p> * - * Intent: <i>Attach additional responsibilities to an object dynamically. - * Decorators provide a flexible alternative to subclassing for extending + * Intent: <i>Attach additional responsibilities to an object dynamically. + * Decorators provide a flexible alternative to subclassing for extending * functionality.</i><p> * * Participating classes are <code>Output</code>s as <i>Component</i>s, - * <code>ConcreteOutput</code> as <i>ConcreteComponent</i>. The decorators + * <code>ConcreteOutput</code> as <i>ConcreteComponent</i>. The decorators * are <code>OutputDecorator</code> as <i>Decorator</i>, and <code> * StarDecorator</code> and <code>BracketDecorator</code> as <i> * ConcreteDecorator</i>s.<p> @@ -39,40 +39,40 @@ package ca.ubc.cs.spl.aspectPatterns.examples.decorator.aspectj; * string, Decorators (StarDecorator and BracketDecorator) wrap other * output around it. Output should be: "[ *** <String> *** ]" * - * <p><i>This is the AspectJ version.</i><p> + * <p><i>This is the AspectJ version.</i><p> * - * This version does not allow for dynamic composition of decorators. - * However, this version decouples <i>ConcreteComponent</i>s, clients + * This version does not allow for dynamic composition of decorators. + * However, this version decouples <i>ConcreteComponent</i>s, clients * and <i>Decorators</i>. Neither clients nor <i>ConcreteComponents</i> * need to have pattern code in them. - * + * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/11/04 - * + * * @see ConcreteOutput - * @see StarDecorator + * @see StarDecorator * @see BracketDecorator */ - + public class Main { /** - * Implements the driver for the Decorator design pattern example.<p> + * Implements the driver for the Decorator design pattern example.<p> * * Experimental setup: Concrete decorator (ConcreteOutput) prints a * string, Decorators (StarDecorator and BracketDecorator) wrap other - * output around it. Output should be: "[ *** <String> *** ]" + * output around it. Output should be: "[ *** <String> *** ]" * * @param args command line paramters, unused */ - + public static void main(String[] args) { - + ConcreteOutput original = new ConcreteOutput(); - - original.print("<String>"); - + + original.print("<String>"); + System.out.println(); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/decorator/aspectj/StarDecorator.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/decorator/aspectj/StarDecorator.java index f7c85a768..b47712338 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/decorator/aspectj/StarDecorator.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/decorator/aspectj/StarDecorator.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.decorator.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -17,7 +17,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.decorator.aspectj; * The Original Code is ca.ubc.cs.spl.aspectPatterns. * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * * Contributor(s): */ @@ -58,4 +58,4 @@ public aspect StarDecorator { proceed(s); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/decorator/java/BracketDecorator.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/decorator/java/BracketDecorator.java index 4b381865e..a1e6eda1d 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/decorator/java/BracketDecorator.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/decorator/java/BracketDecorator.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.decorator.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,13 +15,13 @@ package ca.ubc.cs.spl.aspectPatterns.examples.decorator.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ - + /** * Implements a decorator that adds brackets ("[", "]") before and after the * string to decorate. @@ -29,13 +29,13 @@ package ca.ubc.cs.spl.aspectPatterns.examples.decorator.java; * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/11/04 - */ - + */ + public class BracketDecorator extends OutputDecorator { - + /** * Adds brackets before and after the argument string before passing - * the call on to the component this decorator decorates. + * the call on to the component this decorator decorates. * * @param s the string to be decorated. */ @@ -53,4 +53,4 @@ public class BracketDecorator extends OutputDecorator { public BracketDecorator(Output output) { super(output); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/decorator/java/ConcreteOutput.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/decorator/java/ConcreteOutput.java index 90d82b5be..4cf7d3763 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/decorator/java/ConcreteOutput.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/decorator/java/ConcreteOutput.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.decorator.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,13 +15,13 @@ package ca.ubc.cs.spl.aspectPatterns.examples.decorator.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ - + /** * Implements the <i>Component</i> interface to print strings to <code> * System.out</code>. @@ -29,8 +29,8 @@ package ca.ubc.cs.spl.aspectPatterns.examples.decorator.java; * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/11/04 - */ - + */ + public class ConcreteOutput implements Output { /** @@ -42,4 +42,4 @@ public class ConcreteOutput implements Output { public void print(String s) { System.out.print(s); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/decorator/java/Main.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/decorator/java/Main.java index fd0601599..c5266ef3d 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/decorator/java/Main.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/decorator/java/Main.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.decorator.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,22 +15,22 @@ package ca.ubc.cs.spl.aspectPatterns.examples.decorator.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ - + /** - * Implements the driver for the Decorator design pattern example.<p> + * Implements the driver for the Decorator design pattern example.<p> * - * Intent: <i>Attach additional responsibilities to an object dynamically. - * Decorators provide a flexible alternative to subclassing for extending + * Intent: <i>Attach additional responsibilities to an object dynamically. + * Decorators provide a flexible alternative to subclassing for extending * functionality.</i><p> * * Participating classes are <code>Output</code>s as <i>Component</i>s, - * <code>ConcreteOutput</code> as <i>ConcreteComponent</i>. The decorators + * <code>ConcreteOutput</code> as <i>ConcreteComponent</i>. The decorators * are <code>OutputDecorator</code> as <i>Decorator</i>, and <code> * StarDecorator</code> and <code>BracketDecorator</code> as <i> * ConcreteDecorator</i>s.<p> @@ -39,35 +39,35 @@ package ca.ubc.cs.spl.aspectPatterns.examples.decorator.java; * string, Decorators (StarDecorator and BracketDecorator) wrap other * output around it. Output should be: "[ *** <String> *** ]" * - * <p><i>This is the Java version.</i><p> + * <p><i>This is the Java version.</i><p> * - * This version allows for dynamic composition of decorators. + * This version allows for dynamic composition of decorators. * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/11/04 */ - + public class Main { /** - * Implements the driver for the Decorator design pattern example.<p> + * Implements the driver for the Decorator design pattern example.<p> * * Experimental setup: Concrete decorator (ConcreteOutput) prints a * string, Decorators (StarDecorator and BracketDecorator) wrap other - * output around it. Output should be: "[ *** <String> *** ]" + * output around it. Output should be: "[ *** <String> *** ]" * * @param args command line paramters, unused */ - + public static void main(String[] args) { - + Output original = new ConcreteOutput(); Output bracketed= new BracketDecorator(original); Output stared = new StarDecorator(bracketed); - - stared.print("<String>"); - + + stared.print("<String>"); + System.out.println(); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/decorator/java/Output.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/decorator/java/Output.java index 49df113d4..a111d4802 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/decorator/java/Output.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/decorator/java/Output.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.decorator.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,23 +15,23 @@ package ca.ubc.cs.spl.aspectPatterns.examples.decorator.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ - + /** - * Defines an interface for printing Strings. Acts as <i>Component</i>. + * Defines an interface for printing Strings. Acts as <i>Component</i>. * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/11/04 - */ - -public interface Output { - + */ + +public interface Output { + /** * Prints the argument string to <code>System.out</code>. * @@ -40,4 +40,3 @@ public interface Output { public void print(String s); } - diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/decorator/java/OutputDecorator.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/decorator/java/OutputDecorator.java index 2966d1f20..3021cb844 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/decorator/java/OutputDecorator.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/decorator/java/OutputDecorator.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.decorator.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,31 +15,31 @@ package ca.ubc.cs.spl.aspectPatterns.examples.decorator.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ - + /** - * Defines the <i>Decorator</i> interface. This is realized as an abstract - * class to allow for default implementations (set varible "output", + * Defines the <i>Decorator</i> interface. This is realized as an abstract + * class to allow for default implementations (set varible "output", * provide default implementation for <code>print(String)</code>). * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/11/04 - */ - + */ + public abstract class OutputDecorator implements Output { /** * the <i>Component</i> to decorate - */ + */ protected Output outputComponent; - + /** * Prints the argument string to <code>System.out</code>. This method is * overwritten by concrete decorators. The default implementation @@ -47,22 +47,22 @@ public abstract class OutputDecorator implements Output { * * @param s the string to be printed. */ - - public void print(String s) { + + public void print(String s) { outputComponent.print(s); } - + /** - * Defines the constructor signature. Also provides a default - * implementation so that concrete decorators don't have to - * re-implement it. Subclasses (<i>ConcreteDecorator</i>s) can just + * Defines the constructor signature. Also provides a default + * implementation so that concrete decorators don't have to + * re-implement it. Subclasses (<i>ConcreteDecorator</i>s) can just * call <code>super(..)</code> and don't have * to deal with setting the variable themselves. * * @param output the <i>Component</i> to decorate. */ - + public OutputDecorator(Output output) { this.outputComponent = output; } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/decorator/java/StarDecorator.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/decorator/java/StarDecorator.java index 1e7cb393b..b501eac08 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/decorator/java/StarDecorator.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/decorator/java/StarDecorator.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.decorator.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,13 +15,13 @@ package ca.ubc.cs.spl.aspectPatterns.examples.decorator.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ - + /** * Implements a decorator that adds stars (" *** ") before and after the * string to decorate. @@ -29,14 +29,14 @@ package ca.ubc.cs.spl.aspectPatterns.examples.decorator.java; * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/11/04 - */ - + */ + public class StarDecorator extends OutputDecorator { /** * Adds three stars before and after the argument string before passing - * the call on to the component this decorator decorates. + * the call on to the component this decorator decorates. * * @param s the string to be decorated. */ @@ -56,4 +56,4 @@ public class StarDecorator extends OutputDecorator { } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/facade/aspectj/Decoration.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/facade/aspectj/Decoration.java index c6d59e657..eaf19ea9b 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/facade/aspectj/Decoration.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/facade/aspectj/Decoration.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.facade.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,11 +15,11 @@ package ca.ubc.cs.spl.aspectPatterns.examples.facade.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** @@ -29,16 +29,16 @@ package ca.ubc.cs.spl.aspectPatterns.examples.facade.aspectj; * @author Gregor Kiczales * @version 1.11, 03/29/04 */ - + public class Decoration { /** * Provides a decorator string consisting of stars ("*"). * - * @returns a decorator string made up of stars + * @returns a decorator string made up of stars */ public static String getDecoration() { return "*******************************************"; } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/facade/aspectj/FacadePolicyEnforcement.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/facade/aspectj/FacadePolicyEnforcement.java index 815793fd5..1499b4c62 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/facade/aspectj/FacadePolicyEnforcement.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/facade/aspectj/FacadePolicyEnforcement.java @@ -5,7 +5,7 @@ * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -13,11 +13,11 @@ * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ package ca.ubc.cs.spl.aspectPatterns.examples.facade.aspectj; @@ -27,9 +27,9 @@ package ca.ubc.cs.spl.aspectPatterns.examples.facade.aspectj; * warning if the <i>subsystem</i> is accessed from any other class but the * facade. We use <code>declare warning</code> here, but <code>declare error * </code> can also be used. - * - * Instead of protecting the encapsulated subsystem against (only) mehod - * calls, other pointcut types (or combinations) could be used to achieve + * + * Instead of protecting the encapsulated subsystem against (only) mehod + * calls, other pointcut types (or combinations) could be used to achieve * different effects. * * @author Jan Hannemann @@ -38,26 +38,26 @@ package ca.ubc.cs.spl.aspectPatterns.examples.facade.aspectj; */ public aspect FacadePolicyEnforcement { - + /** - * Enumerates all calls to encapsulated methods. It is of course easier + * Enumerates all calls to encapsulated methods. It is of course easier * to define this pointcut if the encapsulated subsystem is in a separate * package, and the protected classes do not have to be enumerated. */ - - pointcut callsToEncapsulatedMethods(): + + pointcut callsToEncapsulatedMethods(): call(* (Decoration || RegularScreen || StringTransformer).*(..)); - + /** * Defines what constitutes legal accesses to the protected subsystem. */ - + pointcut facade(): within(OutputFacade); - + /** * Whenever a method in the encapsulated susbsystem is called, a compile * time warning gets created - except if the method call comes from the - * <i>Facade</i> + * <i>Facade</i> */ declare warning: callsToEncapsulatedMethods() && !facade(): diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/facade/aspectj/Main.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/facade/aspectj/Main.java index 06e5ce34c..d2ed78c43 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/facade/aspectj/Main.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/facade/aspectj/Main.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.facade.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,18 +15,18 @@ package ca.ubc.cs.spl.aspectPatterns.examples.facade.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** - * Implements the driver for the Facade design pattern example.<p> + * Implements the driver for the Facade design pattern example.<p> * - * Intent: <i>Provide a unified interface to a set of interfaces in a - * subsystem. Facade defines a higher-level interface that makes the + * Intent: <i>Provide a unified interface to a set of interfaces in a + * subsystem. Facade defines a higher-level interface that makes the * subsystem easier to use.</i><p> * * The <i>subsystem</i> consists of three classes that provide low-level @@ -35,42 +35,42 @@ package ca.ubc.cs.spl.aspectPatterns.examples.facade.aspectj; * </i> class <code>OutputFacade</code> procides a higher-level interface * to output strings. This class calls methods on that higer-level interface. * - * * <p><i>This is the AspectJ version.</i><p> + * * <p><i>This is the AspectJ version.</i><p> * * For this pattern, both Java and AspectJ implementations are identical. * The pattern introduces no crosscutting and is not abstractable. However, * this example illustrates that AspectJ can be used to enforce the facade's * encapsulation of the subsystem in question. Both <code>declare warning - * </code> and <code>declare error</code> can be used to that effect. + * </code> and <code>declare error</code> can be used to that effect. * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.11, 03/29/04 */ - + public class Main { /** * Tests the higher-level interface of <code>OutputFacade</code>. - * + * * @param args Command-line parameters, ignored here - */ - + */ + public static void main(String[] args) { OutputFacade facade = new OutputFacade(); - + System.out.println("Testing regular Facade access..."); facade.printDecoration(); - + facade.printNormal("Facade: this is normal printing"); facade.printFancy ("Facade: this is fancy printing"); System.out.println("\nCircumventing Facade encapsulation..."); - - // Note that the compiler warning caused by the next line is + + // Note that the compiler warning caused by the next line is // intentional. See FacadePolicyEnforcement for details. RegularScreen.print("It works, but should create a compiler warning"); System.out.println(); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/facade/aspectj/OutputFacade.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/facade/aspectj/OutputFacade.java index 676e9e27b..33aeb5104 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/facade/aspectj/OutputFacade.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/facade/aspectj/OutputFacade.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.facade.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,42 +15,42 @@ package ca.ubc.cs.spl.aspectPatterns.examples.facade.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** - * Implements the <i>Facade</i> role in the pattern by providing a - * higher-level interface to the operations provided by - * <code>RegularScreen</code>, <code>Decoration</code>, + * Implements the <i>Facade</i> role in the pattern by providing a + * higher-level interface to the operations provided by + * <code>RegularScreen</code>, <code>Decoration</code>, * and <code>StringTransformer</code>. * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.11, 03/29/04 */ - + public class OutputFacade { /** * Prints a string using <code>RegularScreen</code>. * - * @param s the string to print + * @param s the string to print */ public void printNormal(String s) { RegularScreen.print(s); RegularScreen.newline(); } - + /** - * Prints a two versions of string with decorations + * Prints a two versions of string with decorations * using <code>RegularScreen</code> and <code>Decoration</code>. * - * @param s the string to print + * @param s the string to print */ public void printFancy(String s) { @@ -63,7 +63,7 @@ public class OutputFacade { RegularScreen.print(StringTransformer.transformToLower(s+" (lowercase)")); RegularScreen.newline(); - + printDecoration(); } @@ -76,4 +76,4 @@ public class OutputFacade { RegularScreen.newline(); RegularScreen.newline(); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/facade/aspectj/RegularScreen.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/facade/aspectj/RegularScreen.java index bbd623afe..4ad393b31 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/facade/aspectj/RegularScreen.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/facade/aspectj/RegularScreen.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.facade.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,11 +15,11 @@ package ca.ubc.cs.spl.aspectPatterns.examples.facade.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** @@ -29,19 +29,19 @@ package ca.ubc.cs.spl.aspectPatterns.examples.facade.aspectj; * @author Gregor Kiczales * @version 1.11, 03/29/04 */ - + public class RegularScreen { /** * Prints a string to System.out. * - * @param s the string to print + * @param s the string to print */ public static void print(String s) { System.out.print(s); } - + /** * Prints a newline to System.out. */ @@ -49,4 +49,4 @@ public class RegularScreen { public static void newline() { System.out.println(); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/facade/aspectj/StringTransformer.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/facade/aspectj/StringTransformer.java index a1f5eafba..a6d2d53d1 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/facade/aspectj/StringTransformer.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/facade/aspectj/StringTransformer.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.facade.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,11 +15,11 @@ package ca.ubc.cs.spl.aspectPatterns.examples.facade.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** @@ -29,7 +29,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.facade.aspectj; * @author Gregor Kiczales * @version 1.11, 03/29/04 */ - + public class StringTransformer { /** @@ -42,7 +42,7 @@ public class StringTransformer { public static String transformToUpper(String s) { return s.toUpperCase(); } - + /** * Transforms a string to lower case * @@ -53,4 +53,4 @@ public class StringTransformer { public static String transformToLower(String s) { return s.toLowerCase(); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/facade/java/Decoration.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/facade/java/Decoration.java index 8425bc762..c6b552acf 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/facade/java/Decoration.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/facade/java/Decoration.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.facade.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -17,7 +17,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.facade.java; * The Original Code is ca.ubc.cs.spl.aspectPatterns. * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * * Contributor(s): */ @@ -41,4 +41,4 @@ public class Decoration { public static String getDecoration() { return "*******************************************"; } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/facade/java/Main.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/facade/java/Main.java index 36d7c0b4c..b93d0c102 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/facade/java/Main.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/facade/java/Main.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.facade.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,18 +15,18 @@ package ca.ubc.cs.spl.aspectPatterns.examples.facade.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** - * Implements the driver for the Facade design pattern example.<p> + * Implements the driver for the Facade design pattern example.<p> * - * Intent: <i>Provide a unified interface to a set of interfaces in a - * subsystem. Facade defines a higher-level interface that makes the + * Intent: <i>Provide a unified interface to a set of interfaces in a + * subsystem. Facade defines a higher-level interface that makes the * subsystem easier to use.</i><p> * * The <i>subsystem</i> consists of three classes that provide low-level @@ -35,29 +35,29 @@ package ca.ubc.cs.spl.aspectPatterns.examples.facade.java; * </i> class <code>OutputFacade</code> procides a higher-level interface * to output strings. This class calls methods on that higer-level interface. * - * <p><i>This is the Java version.</i><p> + * <p><i>This is the Java version.</i><p> * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.11, 04/29/04 */ - + public class Main { - + /** * Tests the higher-level interface of <code>OutputFacade</code>. - * + * * @param args Command-line parameters, ignored here - */ - + */ + public static void main(String[] args) { OutputFacade facade = new OutputFacade(); - + System.out.println("Testing Facade..."); facade.printDecoration(); - + facade.printNormal("Facade: this is normal printing"); facade.printFancy ("Facade: this is fancy printing"); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/facade/java/OutputFacade.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/facade/java/OutputFacade.java index 30c1bd8b5..bc280dfc9 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/facade/java/OutputFacade.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/facade/java/OutputFacade.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.facade.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,42 +15,42 @@ package ca.ubc.cs.spl.aspectPatterns.examples.facade.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** - * Implements the <i>Facade</i> role in the pattern by providing a - * higher-level interface to the operations provided by - * <code>RegularScreen</code>, <code>Decoration</code>, + * Implements the <i>Facade</i> role in the pattern by providing a + * higher-level interface to the operations provided by + * <code>RegularScreen</code>, <code>Decoration</code>, * and <code>StringTransformer</code>. * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/11/04 */ - + public class OutputFacade { /** * Prints a string using <code>RegularScreen</code>. * - * @param s the string to print + * @param s the string to print */ public void printNormal(String s) { RegularScreen.print(s); RegularScreen.newline(); } - + /** - * Prints a two versions of string with decorations + * Prints a two versions of string with decorations * using <code>RegularScreen</code> and <code>Decoration</code>. * - * @param s the string to print + * @param s the string to print */ public void printFancy(String s) { @@ -63,7 +63,7 @@ public class OutputFacade { RegularScreen.print(StringTransformer.transformToLower(s+" (lowercase)")); RegularScreen.newline(); - + printDecoration(); } @@ -76,4 +76,4 @@ public class OutputFacade { RegularScreen.newline(); RegularScreen.newline(); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/facade/java/RegularScreen.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/facade/java/RegularScreen.java index acd753598..42267bb22 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/facade/java/RegularScreen.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/facade/java/RegularScreen.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.facade.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,11 +15,11 @@ package ca.ubc.cs.spl.aspectPatterns.examples.facade.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** @@ -29,19 +29,19 @@ package ca.ubc.cs.spl.aspectPatterns.examples.facade.java; * @author Gregor Kiczales * @version 1.1, 02/11/04 */ - + public class RegularScreen { /** * Prints a string to System.out. * - * @param s the string to print + * @param s the string to print */ public static void print(String s) { System.out.print(s); } - + /** * Prints a newline to System.out. */ @@ -49,4 +49,4 @@ public class RegularScreen { public static void newline() { System.out.println(); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/facade/java/StringTransformer.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/facade/java/StringTransformer.java index 1353cfaa4..0ed622147 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/facade/java/StringTransformer.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/facade/java/StringTransformer.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.facade.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,11 +15,11 @@ package ca.ubc.cs.spl.aspectPatterns.examples.facade.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** @@ -29,7 +29,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.facade.java; * @author Gregor Kiczales * @version 1.1, 02/11/04 */ - + public class StringTransformer { /** @@ -42,7 +42,7 @@ public class StringTransformer { public static String transformToUpper(String s) { return s.toUpperCase(); } - + /** * Transforms a string to lower case * @@ -53,4 +53,4 @@ public class StringTransformer { public static String transformToLower(String s) { return s.toLowerCase(); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/factoryMethod/aspectj/AlternateLabelCreatorImplementation.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/factoryMethod/aspectj/AlternateLabelCreatorImplementation.java index d8966e882..dd5f622ac 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/factoryMethod/aspectj/AlternateLabelCreatorImplementation.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/factoryMethod/aspectj/AlternateLabelCreatorImplementation.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.factoryMethod.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,48 +15,48 @@ package ca.ubc.cs.spl.aspectPatterns.examples.factoryMethod.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ import javax.swing.JLabel; import javax.swing.JComponent; /** - * This aspect changes the behavior of a <i>Factory Method</i> using - * <code>around</code> advice. With this approach it is possible to - * have the factories create different products depending on the + * This aspect changes the behavior of a <i>Factory Method</i> using + * <code>around</code> advice. With this approach it is possible to + * have the factories create different products depending on the * aspects woven into the project. For example, this could be used * as a very basic approach to software configuration management. - * - * In this case, two slightly different label products are produced, + * + * In this case, two slightly different label products are produced, * depending on whether this aspect is woven into the system or not. * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.11, 04/01/04 - */ + */ public aspect AlternateLabelCreatorImplementation { - - /** - * Describes the factory method for which we want to + + /** + * Describes the factory method for which we want to * modify the product */ - - pointcut labelCreation(): + + pointcut labelCreation(): execution(JComponent LabelCreator.createComponent()); - + /** - * Creates the product, modifies it and passes the + * Creates the product, modifies it and passes the * modified product on. */ - + JComponent around(): labelCreation() { JLabel label = (JLabel) proceed(); label.setText("This is an alternate JLabel"); return label; } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/factoryMethod/aspectj/ButtonCreator.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/factoryMethod/aspectj/ButtonCreator.java index 673023831..2fd647694 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/factoryMethod/aspectj/ButtonCreator.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/factoryMethod/aspectj/ButtonCreator.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.factoryMethod.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,11 +15,11 @@ package ca.ubc.cs.spl.aspectPatterns.examples.factoryMethod.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ import javax.swing.JButton; @@ -33,10 +33,10 @@ import java.awt.event.ActionEvent; * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/11/04 - * + * * @see LabelCreator - */ - + */ + public class ButtonCreator implements GUIComponentCreator { /** @@ -53,9 +53,9 @@ public class ButtonCreator implements GUIComponentCreator { button.setText("Thank you!"); } }); - return button; + return button; } - + /** * Returns a title explaining this example. * @@ -65,4 +65,4 @@ public class ButtonCreator implements GUIComponentCreator { public String getTitle() { return "Example 1: A JButton"; } -} +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/factoryMethod/aspectj/CreatorImplementation.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/factoryMethod/aspectj/CreatorImplementation.java index 0b8669cfc..126e2eede 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/factoryMethod/aspectj/CreatorImplementation.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/factoryMethod/aspectj/CreatorImplementation.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.factoryMethod.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,63 +15,63 @@ package ca.ubc.cs.spl.aspectPatterns.examples.factoryMethod.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ import javax.swing.JFrame; import javax.swing.JPanel; -import javax.swing.JComponent; +import javax.swing.JComponent; import java.awt.event.WindowAdapter; -import java.awt.event.WindowEvent; +import java.awt.event.WindowEvent; import java.awt.Point; /** * Provides a default implementation for the <i>anOperation()</i> - * method <code>showFrame()</code>. The implementation is attached to the - * <code>GUIComponentCreator</code> interface. With this approach, + * method <code>showFrame()</code>. The implementation is attached to the + * <code>GUIComponentCreator</code> interface. With this approach, * <i>GUIComponentCreator</i> does not have to be an abstract class. - * + * * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/11/04 - * + * * @see GUIComponentCreator - */ + */ public aspect CreatorImplementation { - - /** + + /** * the position for the next frame to be created (on the screen) */ - + private static Point lastFrameLocation = new Point(0, 0); - /** + /** * Creates a <code>JFrame</code>, puts the <code>JComponent</code> that * is created by the factory method into it and displays the frame. This - * Method also provides a <code>WindowListener</code>. + * Method also provides a <code>WindowListener</code>. */ - + public final void GUIComponentCreator.showFrame() { JFrame frame = new JFrame(getTitle()); - + frame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) {System.exit(0);} }); - + JPanel panel = new JPanel(); - + panel.add(createComponent()); - + frame.getContentPane().add(panel); - frame.pack(); + frame.pack(); frame.setLocation(lastFrameLocation); lastFrameLocation.translate(75, 75); - frame.setVisible(true); - } -}
\ No newline at end of file + frame.setVisible(true); + } +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/factoryMethod/aspectj/GUIComponentCreator.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/factoryMethod/aspectj/GUIComponentCreator.java index a2287ef6a..128c923a8 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/factoryMethod/aspectj/GUIComponentCreator.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/factoryMethod/aspectj/GUIComponentCreator.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.factoryMethod.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,19 +15,19 @@ package ca.ubc.cs.spl.aspectPatterns.examples.factoryMethod.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ -import javax.swing.JComponent; +import javax.swing.JComponent; /** - * Defines the <i>GUIComponentCreator</i> interface with the - * <i>factoryMethod()</i> method signature and the <i>anOperation()</i> - * method that uses it. For details, see GoF, page 108.<p> + * Defines the <i>GUIComponentCreator</i> interface with the + * <i>factoryMethod()</i> method signature and the <i>anOperation()</i> + * method that uses it. For details, see GoF, page 108.<p> * * The factory method is <code>createComponent</code> and it creates * A JComponent (a button and a label, repsectively). The <i>anOperation()</i> @@ -37,30 +37,28 @@ import javax.swing.JComponent; * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/11/04 - * + * * @see ButtonCreator * @see LabelCreator - */ - + */ + public interface GUIComponentCreator { - + /** - * The factory method to create <code>JComponent</code>s, to be + * The factory method to create <code>JComponent</code>s, to be * concretized by subclasses. * * @returns the created product */ - public JComponent createComponent(); - + public JComponent createComponent(); + /** * Another factory method to create a title that explains the created * component * * @returns the title for the GUI frame */ - - public String getTitle(); -} -
\ No newline at end of file + public String getTitle(); +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/factoryMethod/aspectj/LabelCreator.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/factoryMethod/aspectj/LabelCreator.java index 200ec456d..0acf2632f 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/factoryMethod/aspectj/LabelCreator.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/factoryMethod/aspectj/LabelCreator.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.factoryMethod.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,11 +15,11 @@ package ca.ubc.cs.spl.aspectPatterns.examples.factoryMethod.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ import javax.swing.JLabel; @@ -31,10 +31,10 @@ import javax.swing.JComponent; * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/11/04 - * + * * @see ButtonCreator - */ - + */ + public class LabelCreator implements GUIComponentCreator { /** @@ -45,9 +45,9 @@ public class LabelCreator implements GUIComponentCreator { public JComponent createComponent() { JLabel label = new JLabel("This is a JLabel."); - return label; + return label; } - + /** * Returns a title explaining this example. * @@ -57,4 +57,4 @@ public class LabelCreator implements GUIComponentCreator { public String getTitle() { return "Example 2: A JLabel"; } -} +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/factoryMethod/aspectj/Main.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/factoryMethod/aspectj/Main.java index 8ae2a2f3a..a9156bfc4 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/factoryMethod/aspectj/Main.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/factoryMethod/aspectj/Main.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.factoryMethod.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,21 +15,21 @@ package ca.ubc.cs.spl.aspectPatterns.examples.factoryMethod.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** - * Implements the driver for the FactoryMethod design pattern example.<p> + * Implements the driver for the FactoryMethod design pattern example.<p> * - * Intent: <i>Define an interface for creating an object, but let subclasses - * decide which class to instantiate. Factory Method lets a class defer + * Intent: <i>Define an interface for creating an object, but let subclasses + * decide which class to instantiate. Factory Method lets a class defer * instantiation to subclasses.</i><p> * - * Participating objects are <code>ButtonCreator</code> and + * Participating objects are <code>ButtonCreator</code> and * <code>LabelCreator</code> as <i>ConcreteCreator</i>s. Both implement * the <code>GUIComponentCreator</code> interface.<p> * @@ -42,15 +42,15 @@ package ca.ubc.cs.spl.aspectPatterns.examples.factoryMethod.aspectj; * <p><i>This is the AspectJ version.</i><p> * * Since the implementation of the <i>anOperation()</i> method <code> - * showFrame()</code> is now realized by an aspect, - * <code>GUIComponentCreator</code> can now be an interface, allowing - * the <i>ConcreteCreator</i>s to be part of a different inheritance + * showFrame()</code> is now realized by an aspect, + * <code>GUIComponentCreator</code> can now be an interface, allowing + * the <i>ConcreteCreator</i>s to be part of a different inheritance * hierarchy. * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/11/04 - * + * * @see GUIComponentCreator * @see ButtonCreator * @see LabelCreator @@ -59,21 +59,21 @@ package ca.ubc.cs.spl.aspectPatterns.examples.factoryMethod.aspectj; public class Main { /** - * Implements the driver for the FactoryMethod design pattern example.<p> + * Implements the driver for the FactoryMethod design pattern example.<p> * - * In this example, the factory method <code>createComponent</code> - * creates a JComponent (a button and a label, repsectively). The - * <i>anOperation()</i> method <code>showFrame()</code> uses the factory - * methods to show a little GUI. In one case, the created frame contains + * In this example, the factory method <code>createComponent</code> + * creates a JComponent (a button and a label, repsectively). The + * <i>anOperation()</i> method <code>showFrame()</code> uses the factory + * methods to show a little GUI. In one case, the created frame contains * a button, in the other a simple label. - */ + */ public static void main(String[] args) { - + GUIComponentCreator creator1 = new ButtonCreator(); GUIComponentCreator creator2 = new LabelCreator(); - + creator1.showFrame(); creator2.showFrame(); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/factoryMethod/java/ButtonCreator.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/factoryMethod/java/ButtonCreator.java index 7346fdb09..ea558a1ed 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/factoryMethod/java/ButtonCreator.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/factoryMethod/java/ButtonCreator.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.factoryMethod.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,11 +15,11 @@ package ca.ubc.cs.spl.aspectPatterns.examples.factoryMethod.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ import javax.swing.JButton; @@ -33,10 +33,10 @@ import java.awt.event.ActionEvent; * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/11/04 - * + * * @see LabelCreator - */ - + */ + public class ButtonCreator extends GUIComponentCreator { /** @@ -53,9 +53,9 @@ public class ButtonCreator extends GUIComponentCreator { button.setText("Thank you!"); } }); - return button; + return button; } - + /** * Returns a title explaining this example. * @@ -65,4 +65,4 @@ public class ButtonCreator extends GUIComponentCreator { public String getTitle() { return "Example 1: A JButton"; } -} +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/factoryMethod/java/GUIComponentCreator.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/factoryMethod/java/GUIComponentCreator.java index 9a4b0101d..a3037c3e5 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/factoryMethod/java/GUIComponentCreator.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/factoryMethod/java/GUIComponentCreator.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.factoryMethod.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,88 +15,86 @@ package ca.ubc.cs.spl.aspectPatterns.examples.factoryMethod.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ import javax.swing.JFrame; import javax.swing.JPanel; -import javax.swing.JComponent; +import javax.swing.JComponent; import java.awt.event.WindowAdapter; -import java.awt.event.WindowEvent; +import java.awt.event.WindowEvent; import java.awt.Point; /** - * Defines the <i>GUIComponentCreator</i> interface with the - * <i>factoryMethod()</i> method signature and the <i>anOperation()</i> - * method that uses it. For details, see GoF, page 108.<p> + * Defines the <i>GUIComponentCreator</i> interface with the + * <i>factoryMethod()</i> method signature and the <i>anOperation()</i> + * method that uses it. For details, see GoF, page 108.<p> * * The factory method is <code>createComponent</code> and it creates * A JComponent (a button or a label, in this case). The <i>anOperation()</i> * method <code>showFrame()</code> uses the factory method to show a small - * GUI. + * GUI. * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/11/04 - * + * * @see ButtonCreator * @see LabelCreator - */ - + */ + public abstract class GUIComponentCreator { - + /** * The factory method to be concretized by subclasses. * * @returns the created <i>ConcreteProduct</i> */ - public abstract JComponent createComponent(); - + public abstract JComponent createComponent(); + /** * Another factory method to create a title for the GUI frame created * by this class. * * @returns the title for the GUI frame */ - - public abstract String getTitle(); - /** + public abstract String getTitle(); + + /** * the position for the next frame to be created (on the screen). This - * variable is used to make sure new frames appear staggered and don't + * variable is used to make sure new frames appear staggered and don't * entirely overlap with existing frames. */ - + private static Point lastFrameLocation = new Point(0, 0); - /** + /** * Creates a <code>JFrame</code>, puts the <code>JComponent</code> that * is created by the factory method into it and displays the frame. This - * Method also provides a <code>WindowListener</code>. + * Method also provides a <code>WindowListener</code>. */ - + public final void showFrame() { JFrame frame = new JFrame(getTitle()); - + frame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) {System.exit(0);} }); - + JPanel panel = new JPanel(); - + panel.add(createComponent()); - + frame.getContentPane().add(panel); - frame.pack(); + frame.pack(); frame.setLocation(lastFrameLocation); lastFrameLocation.translate(75, 75); - frame.setVisible(true); + frame.setVisible(true); } -} - -
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/factoryMethod/java/LabelCreator.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/factoryMethod/java/LabelCreator.java index 40bbd8b8c..c102bb9a7 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/factoryMethod/java/LabelCreator.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/factoryMethod/java/LabelCreator.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.factoryMethod.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,11 +15,11 @@ package ca.ubc.cs.spl.aspectPatterns.examples.factoryMethod.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ import javax.swing.JLabel; @@ -31,10 +31,10 @@ import javax.swing.JComponent; * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/11/04 - * + * * @see ButtonCreator - */ - + */ + public class LabelCreator extends GUIComponentCreator { /** @@ -45,9 +45,9 @@ public class LabelCreator extends GUIComponentCreator { public JComponent createComponent() { JLabel label = new JLabel("This is a JLabel."); - return label; + return label; } - + /** * Returns a title explaining this example. * @@ -57,4 +57,4 @@ public class LabelCreator extends GUIComponentCreator { public String getTitle() { return "Example 2: A JLabel"; } -} +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/factoryMethod/java/Main.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/factoryMethod/java/Main.java index a068f8f7d..0c70d8171 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/factoryMethod/java/Main.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/factoryMethod/java/Main.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.factoryMethod.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,21 +15,21 @@ package ca.ubc.cs.spl.aspectPatterns.examples.factoryMethod.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** - * Implements the driver for the FactoryMethod design pattern example.<p> + * Implements the driver for the FactoryMethod design pattern example.<p> * - * Intent: <i>Define an interface for creating an object, but let subclasses - * decide which class to instantiate. Factory Method lets a class defer + * Intent: <i>Define an interface for creating an object, but let subclasses + * decide which class to instantiate. Factory Method lets a class defer * instantiation to subclasses.</i><p> * - * Participating objects are <code>ButtonCreator</code> and + * Participating objects are <code>ButtonCreator</code> and * <code>LabelCreator</code> as <i>ConcreteCreator</i>s. Both implement * the <code>GUIComponentCreator</code> interface.<p> * @@ -42,15 +42,15 @@ package ca.ubc.cs.spl.aspectPatterns.examples.factoryMethod.java; * <p><i>This is the Java version.</i><p> * * Since the <i>anOperation()</i> method requires an implementation, <i> - * GUIComponentCreator</i> has to be an abstract class (as opposed to an - * interface). Consequently, all <i>ConcreteCreator</i>s have to be - * subclasses of that class and cannot belong to a different inheritance + * GUIComponentCreator</i> has to be an abstract class (as opposed to an + * interface). Consequently, all <i>ConcreteCreator</i>s have to be + * subclasses of that class and cannot belong to a different inheritance * hierarchy. * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/11/04 - * + * * @see GUIComponentCreator * @see ButtonCreator * @see LabelCreator @@ -59,21 +59,21 @@ package ca.ubc.cs.spl.aspectPatterns.examples.factoryMethod.java; public class Main { /** - * Implements the driver for the FactoryMethod design pattern example.<p> + * Implements the driver for the FactoryMethod design pattern example.<p> * - * In this example, the factory method <code>createComponent</code> - * creates a JComponent (a button and a label, repsectively). The - * <i>anOperation()</i> method <code>showFrame()</code> uses the factory - * methods to show a little GUI. In one case, the created frame contains + * In this example, the factory method <code>createComponent</code> + * creates a JComponent (a button and a label, repsectively). The + * <i>anOperation()</i> method <code>showFrame()</code> uses the factory + * methods to show a little GUI. In one case, the created frame contains * a button, in the other a simple label. - */ - + */ + public static void main(String[] args) { - + GUIComponentCreator creator1 = new ButtonCreator(); GUIComponentCreator creator2 = new LabelCreator(); - + creator1.showFrame(); creator2.showFrame(); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/flyweight/aspectj/CharacterFlyweight.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/flyweight/aspectj/CharacterFlyweight.java index 7e024edf8..3a92e2f24 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/flyweight/aspectj/CharacterFlyweight.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/flyweight/aspectj/CharacterFlyweight.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.flyweight.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,13 +15,13 @@ package ca.ubc.cs.spl.aspectPatterns.examples.flyweight.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ - + /** /** * A <i>ConcreteFlyweight</i> storing a single regular character @@ -36,29 +36,29 @@ public class CharacterFlyweight implements PrintableFlyweight { /** * The character this <i>ConcreteFlyweight</i> represents */ - + private char c; - - /** - * Creates a new <i>ConcreteFlyweight</i> and sets it to represent a + + /** + * Creates a new <i>ConcreteFlyweight</i> and sets it to represent a * particular regular character - * + * * @param c the character to represent */ - + public CharacterFlyweight(char c) { this.c = c; } - - /** + + /** * Prints the stored character * * @param uppercase whether the character should be printed in * uppercase - */ - + */ + public void print(boolean uppercase) { System.out.print(uppercase ? Character.toUpperCase(c) : c); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/flyweight/aspectj/FlyweightImplementation.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/flyweight/aspectj/FlyweightImplementation.java index f3ecc43a0..51a5dda8c 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/flyweight/aspectj/FlyweightImplementation.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/flyweight/aspectj/FlyweightImplementation.java @@ -1,4 +1,4 @@ -package ca.ubc.cs.spl.aspectPatterns.examples.flyweight.aspectj; +package ca.ubc.cs.spl.aspectPatterns.examples.flyweight.aspectj; /* -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- * @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.flyweight.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,23 +15,23 @@ package ca.ubc.cs.spl.aspectPatterns.examples.flyweight.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ - + import ca.ubc.cs.spl.aspectPatterns.patternLibrary.FlyweightProtocol; /** - * Implements a concrete instance of the flyweight pattern using the + * Implements a concrete instance of the flyweight pattern using the * abstract implementation found in <code>FlyweightProtocol</code>. - * - * It assigns the <i>Flyweight</i> pattern role to the participants and + * + * It assigns the <i>Flyweight</i> pattern role to the participants and * provides the implementation for creating <i>Flyweight</i>s. - * - * A concenience method is provided to utilize the abstract aspect's + * + * A concenience method is provided to utilize the abstract aspect's * <i>getFlyweight(...)</i> implementation with an appropriate return type. * * @author Jan Hannemann @@ -41,22 +41,22 @@ import ca.ubc.cs.spl.aspectPatterns.patternLibrary.FlyweightProtocol; public aspect FlyweightImplementation extends FlyweightProtocol { - - /** + + /** * Assigns the <i>Flyweight</i> role to CharacterFlyweight. */ declare parents: CharacterFlyweight implements Flyweight; - /** + /** * Assigns the <i>Flyweight</i> role to WhitespaceFlyweight. */ declare parents: WhitespaceFlyweight implements Flyweight; /** - * Actually creates the <i>Flyweight</i> for a given <i>Key</i>. This - * method is called by <code>getFlyweight(Object)</code> if the + * Actually creates the <i>Flyweight</i> for a given <i>Key</i>. This + * method is called by <code>getFlyweight(Object)</code> if the * flyweight does not already exist. * * @param key the key identifying the particular <i>Flyweight</i> @@ -64,19 +64,19 @@ public aspect FlyweightImplementation extends FlyweightProtocol { */ protected Flyweight createFlyweight(Object key) { - char c = ((Character) key).charValue(); + char c = ((Character) key).charValue(); Flyweight flyweight = null; if (Character.isWhitespace(c)) { flyweight = new WhitespaceFlyweight(c); - } else { + } else { flyweight = new CharacterFlyweight(c); } - return flyweight; - } - + return flyweight; + } + /** - * Provides a custom interface to access the <i>Flyweights</i>. - * Refers to the general <code>getFlyweight(Object)</code> method + * Provides a custom interface to access the <i>Flyweights</i>. + * Refers to the general <code>getFlyweight(Object)</code> method * defined on the abstract aspect. * * @param c the character identifying the particular flyweight @@ -86,4 +86,4 @@ public aspect FlyweightImplementation extends FlyweightProtocol { public PrintableFlyweight getPrintableFlyweight(char c) { return (PrintableFlyweight) getFlyweight(new Character(c)); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/flyweight/aspectj/Main.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/flyweight/aspectj/Main.java index dce3cd0dd..c7e4687d0 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/flyweight/aspectj/Main.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/flyweight/aspectj/Main.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.flyweight.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,31 +15,31 @@ package ca.ubc.cs.spl.aspectPatterns.examples.flyweight.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ - + /** - * Implements the driver for the Flyweight design pattern example.<p> + * Implements the driver for the Flyweight design pattern example.<p> * - * Intent: <i>Use sharing to support large numbers of fine-grained objects + * Intent: <i>Use sharing to support large numbers of fine-grained objects * efficiently.</i><p> * * Participating <i>Flyweight</i> classes are <code>CharacterFlyweight</code> * and <code>WhitespaceFlyweight</code>. Both implement the <code> - * PrintableFlyweight</code> interface. Flyweights are generated via the + * PrintableFlyweight</code> interface. Flyweights are generated via the * <code>PrintableFlyweightFactory</code>. <P> - * - * Intrinsic state: The character to print, + * + * Intrinsic state: The character to print, * Extrinsic state: Whether the char is upper case or lower case * * This example creates a sentence out of <code>PrintableFlyweight</i>s * (characters and whitespaces). * - * <p><i>This is the AspectJ version.</i><p> + * <p><i>This is the AspectJ version.</i><p> * * The creation-on-demand functionality is performed by the abstract * pattern aspect. @@ -47,21 +47,21 @@ package ca.ubc.cs.spl.aspectPatterns.examples.flyweight.aspectj; * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/11/04 - * + * * @see PrintableFlyweight */ public class Main { /** - * Implements the driver for the Flyweight design pattern example.<p> + * Implements the driver for the Flyweight design pattern example.<p> * * This example creates a sentence out of <code>PrintableFlyweight</i>s - * (characters and whitespaces). + * (characters and whitespaces). */ public static void main(String[] args) { - + System.out.println("This is a test for the AspectJ version of the " + "Flyweight pattern implementation."); System.out.println("The client will use char flyweights to print " @@ -69,46 +69,46 @@ public class Main { System.out.println("\"This Is A Test\".\n"); System.out.println("Testing Pattern: Flyweight - STARTING\n"); - PrintableFlyweight T = + PrintableFlyweight T = FlyweightImplementation.aspectOf().getPrintableFlyweight('t'); - PrintableFlyweight H = + PrintableFlyweight H = FlyweightImplementation.aspectOf().getPrintableFlyweight('h'); - PrintableFlyweight I = + PrintableFlyweight I = FlyweightImplementation.aspectOf().getPrintableFlyweight('i'); - PrintableFlyweight S = + PrintableFlyweight S = FlyweightImplementation.aspectOf().getPrintableFlyweight('s'); - PrintableFlyweight A = + PrintableFlyweight A = FlyweightImplementation.aspectOf().getPrintableFlyweight('a'); - PrintableFlyweight E = + PrintableFlyweight E = FlyweightImplementation.aspectOf().getPrintableFlyweight('e'); - PrintableFlyweight Empty = - FlyweightImplementation.aspectOf().getPrintableFlyweight(' '); - + PrintableFlyweight Empty = + FlyweightImplementation.aspectOf().getPrintableFlyweight(' '); + // Printing: "This Is A Test" - + T.print(true); H.print(false); I.print(false); S.print(false); - + Empty.print(true); - + I.print(true); S.print(false); - + Empty.print(true); - + A.print(true); - + Empty.print(true); - + T.print(true); E.print(false); S.print(false); - T.print(false); - + T.print(false); + System.out.println(); - + System.out.println("\nTesting Pattern: State - FINISHED"); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/flyweight/aspectj/PrintableFlyweight.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/flyweight/aspectj/PrintableFlyweight.java index 35aba15e1..c1008bf0f 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/flyweight/aspectj/PrintableFlyweight.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/flyweight/aspectj/PrintableFlyweight.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.flyweight.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,30 +15,30 @@ package ca.ubc.cs.spl.aspectPatterns.examples.flyweight.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ - + /** - * Defines the <i>Flyweight</i> interface. Here, the flyweights are + * Defines the <i>Flyweight</i> interface. Here, the flyweights are * characters that offer a single method: <code>print(boolean)</code>. * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/11/04 */ - -public interface PrintableFlyweight { + +public interface PrintableFlyweight { /** - * Defines the method signature for <i>Flyweights</i>' + * Defines the method signature for <i>Flyweights</i>' * <code>print()</code> method * * @param uppercase whether the character is to be printed as uppercase */ - + public void print(boolean uppercase); -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/flyweight/aspectj/WhitespaceFlyweight.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/flyweight/aspectj/WhitespaceFlyweight.java index 0c4066223..891895d14 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/flyweight/aspectj/WhitespaceFlyweight.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/flyweight/aspectj/WhitespaceFlyweight.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.flyweight.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,21 +15,21 @@ package ca.ubc.cs.spl.aspectPatterns.examples.flyweight.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ - + /** - * A <i>ConcreteFlyweight</i> storing a single whitespace + * A <i>ConcreteFlyweight</i> storing a single whitespace * character * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/11/04 - * + * * @see PrintableFlyweightFactory */ @@ -39,28 +39,28 @@ public class WhitespaceFlyweight implements PrintableFlyweight { /** * The character this flyweight represents */ - + private char c; - - /** - * Creates a new flyweight and sets it to represent a particular + + /** + * Creates a new flyweight and sets it to represent a particular * whitespace character - * + * * @param c the character to represent */ public WhitespaceFlyweight(char c) { this.c = c; } - - /** + + /** * Prints the stored character * * @param uppercase whether the character should be printed in * uppercase - */ - + */ + public void print(boolean uppercase) { System.out.print(uppercase ? Character.toUpperCase(c) : c); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/flyweight/java/CharacterFlyweight.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/flyweight/java/CharacterFlyweight.java index 6c61d4fd6..46216f10b 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/flyweight/java/CharacterFlyweight.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/flyweight/java/CharacterFlyweight.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.flyweight.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -17,7 +17,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.flyweight.java; * The Original Code is ca.ubc.cs.spl.aspectPatterns. * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * * Contributor(s): */ @@ -62,4 +62,4 @@ public class CharacterFlyweight implements PrintableFlyweight { public void print(boolean uppercase) { System.out.print(uppercase ? Character.toUpperCase(c) : c); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/flyweight/java/Main.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/flyweight/java/Main.java index 23be7e85e..d23e78e07 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/flyweight/java/Main.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/flyweight/java/Main.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.flyweight.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,40 +15,40 @@ package ca.ubc.cs.spl.aspectPatterns.examples.flyweight.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ - + /** - * Implements the driver for the Flyweight design pattern example.<p> + * Implements the driver for the Flyweight design pattern example.<p> * - * Intent: <i>Use sharing to support large numbers of fine-grained objects + * Intent: <i>Use sharing to support large numbers of fine-grained objects * efficiently.</i><p> * * Participating <i>Flyweight</i> classes are <code>CharacterFlyweight</code> * and <code>WhitespaceFlyweight</code>. Both implement the <code> - * PrintableFlyweight</code> interface. Flyweights are generated via the + * PrintableFlyweight</code> interface. Flyweights are generated via the * <code>PrintableFlyweightFactory</code>. <P> - * + * * These are the pattern roles: <UL> * * <LI> CharacterFlyweightFactory: FlyweightFactory * <LI> PritableFlyweight: Flyweight * <LI> CharacterFlyweight: ConcreteFlyweight * <LI> WhitespaceFlyweight: ConcreteFlyweight - * <LI> Main: Client - * </UL> + * <LI> Main: Client + * </UL> * - * Intrinsic state: The character to print, + * Intrinsic state: The character to print, * Extrinsic state: Whether the char is upper case or lower case * * This example creates a sentence out of <code>PrintableFlyweight</i>s * (characters and whitespaces). * - * <p><i>This is the Java version.</i><p> + * <p><i>This is the Java version.</i><p> * * This implementation is analoguous to the GoF book's description. * For this version, we only use two classes for the flyweights, @@ -59,7 +59,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.flyweight.java; * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/11/04 - * + * * @see PrintableFlyweight * @see PrintableFlyweightFactory */ @@ -67,14 +67,14 @@ package ca.ubc.cs.spl.aspectPatterns.examples.flyweight.java; public class Main { /** - * Implements the driver for the Flyweight design pattern example.<p> + * Implements the driver for the Flyweight design pattern example.<p> * * This example creates a sentence out of <code>PrintableFlyweight</i>s - * (characters and whitespaces). + * (characters and whitespaces). */ public static void main(String[] args) { - + System.out.println("This is a test for the java Flyweight pattern " + "implementation."); System.out.println("The client will use char flyweights to print the " @@ -83,40 +83,40 @@ public class Main { System.out.println("Testing Pattern: Flyweight - STARTING\n"); PrintableFlyweightFactory pff = new PrintableFlyweightFactory(); - + PrintableFlyweight T = pff.getPrintableFlyweight('t'); PrintableFlyweight H = pff.getPrintableFlyweight('h'); PrintableFlyweight I = pff.getPrintableFlyweight('i'); PrintableFlyweight S = pff.getPrintableFlyweight('s'); PrintableFlyweight A = pff.getPrintableFlyweight('a'); PrintableFlyweight E = pff.getPrintableFlyweight('e'); - PrintableFlyweight Empty = pff.getPrintableFlyweight(' '); - + PrintableFlyweight Empty = pff.getPrintableFlyweight(' '); + // Printing: "This Is A Test" - + T.print(true); H.print(false); I.print(false); S.print(false); - + Empty.print(true); - + I.print(true); S.print(false); - + Empty.print(true); - + A.print(true); - + Empty.print(true); - + T.print(true); E.print(false); S.print(false); - T.print(false); - + T.print(false); + System.out.println(); - + System.out.println("\nTesting Pattern: State - FINISHED"); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/flyweight/java/PrintableFlyweight.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/flyweight/java/PrintableFlyweight.java index 89e8b8e8c..230843dab 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/flyweight/java/PrintableFlyweight.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/flyweight/java/PrintableFlyweight.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.flyweight.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,32 +15,32 @@ package ca.ubc.cs.spl.aspectPatterns.examples.flyweight.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ - + /** - * Defines the <i>Flyweight</i> interface. Here, the flyweights are + * Defines the <i>Flyweight</i> interface. Here, the flyweights are * characters that offer a single method: <code>print(boolean)</code>. * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/11/04 - * + * * @see PrintableFlyweightFactory */ - -public interface PrintableFlyweight { - + +public interface PrintableFlyweight { + /** - * Defines the method signature for <i>Flyweights</i>' + * Defines the method signature for <i>Flyweights</i>' * <code>print()</code> method * * @param uppercase whether the character is to be printed as uppercase */ - + public void print(boolean uppercase); -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/flyweight/java/PrintableFlyweightFactory.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/flyweight/java/PrintableFlyweightFactory.java index 56bfe74cc..3411ddfd1 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/flyweight/java/PrintableFlyweightFactory.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/flyweight/java/PrintableFlyweightFactory.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.flyweight.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,29 +15,29 @@ package ca.ubc.cs.spl.aspectPatterns.examples.flyweight.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ - + import java.util.Hashtable; /** - * Implements a <i>FlyweightFactory</i> that employs a creation-on-demand + * Implements a <i>FlyweightFactory</i> that employs a creation-on-demand * policy. * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/11/04 - * + * * @see PrintableFlyweight */ -public class PrintableFlyweightFactory { - - /** +public class PrintableFlyweightFactory { + + /** * stores the existing flyweights by character they represent */ @@ -45,7 +45,7 @@ public class PrintableFlyweightFactory { /** * Returns the flyweight representing the argument character. - * If the appropriate flyweight does not yet exist, it is created + * If the appropriate flyweight does not yet exist, it is created * on demand. * * @param c the character for which the the flyweight is returned @@ -54,19 +54,19 @@ public class PrintableFlyweightFactory { public PrintableFlyweight getPrintableFlyweight(char c) { - Character ch = new Character(c); - + Character ch = new Character(c); + if (printables.containsKey(ch)) { - return (PrintableFlyweight) printables.get(ch); + return (PrintableFlyweight) printables.get(ch); } else { PrintableFlyweight flyweight = null; if (Character.isWhitespace(c)) { flyweight = new WhitespaceFlyweight(c); - } else { + } else { flyweight = new CharacterFlyweight(c); } printables.put(ch, flyweight); - return flyweight; - } + return flyweight; + } } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/flyweight/java/WhitespaceFlyweight.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/flyweight/java/WhitespaceFlyweight.java index dfc1d4484..694617026 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/flyweight/java/WhitespaceFlyweight.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/flyweight/java/WhitespaceFlyweight.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.flyweight.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,21 +15,21 @@ package ca.ubc.cs.spl.aspectPatterns.examples.flyweight.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ - + /** - * A <i>ConcreteFlyweight</i> storing a single whitespace + * A <i>ConcreteFlyweight</i> storing a single whitespace * character * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/11/04 - * + * * @see PrintableFlyweightFactory */ @@ -39,28 +39,28 @@ public class WhitespaceFlyweight implements PrintableFlyweight { /** * The character this flyweight represents */ - + private char c; - - /** - * Creates a new flyweight and sets it to represent a particular + + /** + * Creates a new flyweight and sets it to represent a particular * whitespace character - * + * * @param c the character to represent */ public WhitespaceFlyweight(char c) { this.c = c; } - - /** + + /** * Prints the stored character. * * @param uppercase whether the character should be printed in * uppercase - */ - + */ + public void print(boolean uppercase) { System.out.print(uppercase ? Character.toUpperCase(c) : c); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/aspectj/AndExpression.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/aspectj/AndExpression.java index 5ddb4fcf2..a3831f872 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/aspectj/AndExpression.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/aspectj/AndExpression.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.interpreter.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -17,7 +17,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.interpreter.aspectj; * The Original Code is ca.ubc.cs.spl.aspectPatterns. * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * * Contributor(s): */ diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/aspectj/BooleanConstant.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/aspectj/BooleanConstant.java index 685595dba..2faec984e 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/aspectj/BooleanConstant.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/aspectj/BooleanConstant.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.interpreter.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,11 +15,11 @@ package ca.ubc.cs.spl.aspectPatterns.examples.interpreter.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** @@ -30,20 +30,20 @@ package ca.ubc.cs.spl.aspectPatterns.examples.interpreter.aspectj; * @version 1.1, 02/11/04 */ -public class BooleanConstant implements BooleanExpression { +public class BooleanConstant implements BooleanExpression { /** * the value of this constant */ - + protected boolean value; - /** - * Creates a new constant with the given value + /** + * Creates a new constant with the given value * * @param value the value this constant should represent - */ - + */ + public BooleanConstant(boolean value) { this.value = value; } @@ -58,6 +58,6 @@ public class BooleanConstant implements BooleanExpression { public boolean evaluate(VariableContext c) { return value; } - -}
\ No newline at end of file + +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/aspectj/BooleanExpression.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/aspectj/BooleanExpression.java index 3ec0fbf54..7c3704ca6 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/aspectj/BooleanExpression.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/aspectj/BooleanExpression.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.interpreter.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,11 +15,11 @@ package ca.ubc.cs.spl.aspectPatterns.examples.interpreter.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** @@ -31,14 +31,14 @@ package ca.ubc.cs.spl.aspectPatterns.examples.interpreter.aspectj; */ public abstract interface BooleanExpression { - + /** * Evaluates this expression in the given <i>VariableContext</i> * * @param c the context to evaluate the <i>Expression</i> in * @return the boolean value of the <i>Expression</i> */ - + public boolean evaluate(VariableContext c); /** @@ -48,7 +48,7 @@ public abstract interface BooleanExpression { * @param exp the <i>Expression</i> to replace the variable * @return a copy of this <i>Expression</i> with the variable replaced */ - + public BooleanExpression replace(String name, BooleanExpression exp); /** @@ -56,6 +56,6 @@ public abstract interface BooleanExpression { * * @return the copied <i>Expression</i> */ - + public BooleanExpression copy(); -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/aspectj/BooleanInterpretation.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/aspectj/BooleanInterpretation.java index a3e5b809e..527d449cd 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/aspectj/BooleanInterpretation.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/aspectj/BooleanInterpretation.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.interpreter.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,51 +15,51 @@ package ca.ubc.cs.spl.aspectPatterns.examples.interpreter.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** * Implements <code>replace(String, BooleanExpression)<code> and * <code>copy()</code> methods for all concrete - * <code>BooleanExpression</code>s. + * <code>BooleanExpression</code>s. * * The very nature of the interpreter pattern introduces coupling between all - * participants. Unfortunately, removing the pattern code from the + * participants. Unfortunately, removing the pattern code from the * participants does not work as nicely here as with other patterns. The - * reason is that the roles are defining, i.e., each participant's + * reason is that the roles are defining, i.e., each participant's * functionality is determined (only) by its role. If aspects were used - * to implement the entire pattern functionality, it would leave - * the <i>Expressions</i> etc. empty and would make the aspect a + * to implement the entire pattern functionality, it would leave + * the <i>Expressions</i> etc. empty and would make the aspect a * monolithic module. <p> * * However, it is still possible to augment or change the behaviour of the - * system without changing all participant classes. To show this, we + * system without changing all participant classes. To show this, we * assumed that <code>BooleanExpression.replace(String, BooleanExpression) - * </code> and <code>BooleanExpression.copy()</code> were added later. - * An aspect is used to implement those methods, so that other - * classes do not have to change (we only changed the interface, but + * </code> and <code>BooleanExpression.copy()</code> were added later. + * An aspect is used to implement those methods, so that other + * classes do not have to change (we only changed the interface, but * even that was not necessary).<p> * - * In general, however, this pattern does not lend itself nicely to + * In general, however, this pattern does not lend itself nicely to * aspectification.<p> * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/11/04 - * + * * @see BooleanExpression */ public aspect BooleanInterpretation { - + // AndExpressionression /** - * Replaces a variable with an <i>Expression</i>. + * Replaces a variable with an <i>Expression</i>. * * @param name the name of the variable * @param exp the <i>Expression</i> to replace the variable @@ -69,21 +69,21 @@ public aspect BooleanInterpretation { public BooleanExpression AndExpression.replace(String name, BooleanExpression exp) { return new AndExpression(expression1.replace(name, exp), expression2.replace(name,exp)); } - + /** * Copies this <i>Expression</i> * * @return the copied <i>Expression</i> */ - + public BooleanExpression AndExpression.copy() { return new AndExpression(expression1.copy(), expression2.copy()); - } + } // BooleanConstant /** - * Replaces a variable with an <i>Expression</i>. + * Replaces a variable with an <i>Expression</i>. * Has no effect on constants. * * @param name the name of the variable @@ -92,23 +92,23 @@ public aspect BooleanInterpretation { */ public BooleanExpression BooleanConstant.replace(String name, BooleanExpression exp) { - return this; + return this; } - + /** * Copies this <i>Expression</i> * * @return the copied <i>Expression</i> */ - + public BooleanExpression BooleanConstant.copy() { return new BooleanConstant(value); } // OrExpression - + /** - * Replaces a variable with an <i>Expression</i>. + * Replaces a variable with an <i>Expression</i>. * * @param name the name of the variable * @param exp the <i>Expression</i> to replace the variable @@ -118,21 +118,21 @@ public aspect BooleanInterpretation { public BooleanExpression OrExpression.replace(String name, BooleanExpression exp) { return new OrExpression(expression1.replace(name, exp), expression2.replace(name,exp)); } - + /** * Copies this <i>Expression</i> * * @return the copied <i>Expression</i> */ - + public BooleanExpression OrExpression.copy() { return new OrExpression(expression1.copy(), expression2.copy()); } - + // VariableExpression /** - * Replaces a variable with an <i>Expression</i>. + * Replaces a variable with an <i>Expression</i>. * * @param name the name of the variable * @param exp the <i>Expression</i> to replace the variable @@ -146,22 +146,22 @@ public aspect BooleanInterpretation { return new VariableExpression(this.name); } } - + /** * Copies this <i>Expression</i> * * @return the copied <i>Expression</i> */ - + public BooleanExpression VariableExpression.copy() { return new VariableExpression(name); } // NotExpressionressionressionression - + /** - * Replaces a variable with an <i>Expression</i>. + * Replaces a variable with an <i>Expression</i>. * * @param name the name of the variable * @param exp the <i>Expression</i> to replace the variable @@ -171,15 +171,14 @@ public aspect BooleanInterpretation { public BooleanExpression NotExpression.replace(String name, BooleanExpression exp) { return new NotExpression(this.exp.replace(name, exp)); } - + /** * Copies this <i>Expression</i> * * @return the copied <i>Expression</i> */ - + public BooleanExpression NotExpression.copy() { return new NotExpression(exp.copy()); - } + } } - diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/aspectj/ExpressionException.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/aspectj/ExpressionException.java index 61cda48ad..da72797e5 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/aspectj/ExpressionException.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/aspectj/ExpressionException.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.interpreter.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,11 +15,11 @@ package ca.ubc.cs.spl.aspectPatterns.examples.interpreter.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** @@ -32,14 +32,14 @@ package ca.ubc.cs.spl.aspectPatterns.examples.interpreter.aspectj; */ public class ExpressionException extends RuntimeException { - + /** * Creates a new ExpressionException with the given message * * @param s the exception message */ - + public ExpressionException(String s) { super(s); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/aspectj/Main.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/aspectj/Main.java index 3a0c6f232..09fc08161 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/aspectj/Main.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/aspectj/Main.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.interpreter.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,15 +15,15 @@ package ca.ubc.cs.spl.aspectPatterns.examples.interpreter.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ - + /** - * Implements the driver for the Intepreter design pattern example.<p> + * Implements the driver for the Intepreter design pattern example.<p> * * Intent: <i>Given a language, defeine a representation fro its grammar along * with an interpreter that uses the representation to interpret sentences @@ -31,44 +31,44 @@ package ca.ubc.cs.spl.aspectPatterns.examples.interpreter.aspectj; * * Participating objects are <code>BooleanContant</code>, <code>VariableExpression * </code>, <code>OrExpression</code>, <code>AndExpression</code>, and <code>NotExpression</code> - * as <i>Expressions</i>. The <i>AbstractExpression</i> interface is defined + * as <i>Expressions</i>. The <i>AbstractExpression</i> interface is defined * in <code>BooelanExp</i>.<p> * - * This example implements an interpreter for a language of boolean + * This example implements an interpreter for a language of boolean * expressions. As a sample expression, "((true & x) | (y & !x))" is - * interpreted for all possible boolean values for x and y. After that, + * interpreted for all possible boolean values for x and y. After that, * y is replaced by another expression and the whole expression is - * evaluated again. + * evaluated again. * * <p><i>This is the AspectJ version.</i><p> * - * The very nature of this pattern introduces coupling between all - * participants. Unfortunately, removing the pattern code from the + * The very nature of this pattern introduces coupling between all + * participants. Unfortunately, removing the pattern code from the * participants does not work as nicely here as with other patterns. The - * reason is that the roles are defining, i.e., each participant's + * reason is that the roles are defining, i.e., each participant's * functionality is determined (only) by its role. Removing pattern * specific code into an aspect would leave the <i>Expressions</i> etc. * empty and would make the aspect a monolithic module. <p> * * However, it is still possible to augment or change the behaviour of the - * system without changing all participant classes. To show this, we + * system without changing all participant classes. To show this, we * assumed that <code>BooleanExpression.replace(String, BooleanExpression)</code> and * <code>BooleanExpression.copy()</code> were added later. The methods are * defined in an aspect, so that other classes did not have to change.<p> * - * In general, however, this pattern does not lend itself nicely to + * In general, however, this pattern does not lend itself nicely to * aspectification.<p> * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/11/04 - * + * * @see BooleanExpression */ public class Main { - /** + /** * Assigns boolean values to two <code>VariableExpression</code>s and evaluates * an expression in the given context. * @@ -90,13 +90,13 @@ public class Main { } /** - * Implements the driver for the Intepreter design pattern example.<p> + * Implements the driver for the Intepreter design pattern example.<p> * - * This example implements an interpreter for a language of boolean + * This example implements an interpreter for a language of boolean * expressions. As a sample expression, "((true & x) | (y & !x))" is - * interpreted for all possible boolean values for x and y. After that, + * interpreted for all possible boolean values for x and y. After that, * y is replaced by another expression and the whole expression is - * evaluated again. + * evaluated again. * * @args command-line parameters, unused. */ @@ -104,23 +104,23 @@ public class Main { public static void main(String[] args) { BooleanExpression exp = null; VariableContext context = new VariableContext(); - + VariableExpression x = new VariableExpression("X"); - VariableExpression y = new VariableExpression("Y"); - - exp = new OrExpression(new AndExpression(new BooleanConstant(true), x), + VariableExpression y = new VariableExpression("Y"); + + exp = new OrExpression(new AndExpression(new BooleanConstant(true), x), new AndExpression(y, new NotExpression(x))); - - System.out.println("Testing Expr: ((true & x) | (y & !x))"); + + System.out.println("Testing Expr: ((true & x) | (y & !x))"); assignAndEvaluate(x, false, y, false, context, exp); assignAndEvaluate(x, false, y, true, context, exp); assignAndEvaluate(x, true, y, false, context, exp); assignAndEvaluate(x, true, y, true, context, exp); - + VariableExpression z = new VariableExpression("Z"); NotExpression notZ = new NotExpression(z); - + BooleanExpression replacement = exp.replace("Y", notZ); context.assign(z, false); boolean result = replacement.evaluate(context); @@ -128,4 +128,3 @@ public class Main { System.out.println("The result for the replacement is: "+result); } } -
\ No newline at end of file diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/aspectj/NotExpression.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/aspectj/NotExpression.java index 817fd85f7..f1a077d1e 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/aspectj/NotExpression.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/aspectj/NotExpression.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.interpreter.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,13 +15,13 @@ package ca.ubc.cs.spl.aspectPatterns.examples.interpreter.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ - + /** * Implements negation for booleans expressions. This is a concrete boolean * <i>NonterminalExpression</i> @@ -33,24 +33,24 @@ package ca.ubc.cs.spl.aspectPatterns.examples.interpreter.aspectj; public class NotExpression implements BooleanExpression { - /** + /** * the <i>Expression</i> this <i>Expression</i> negates */ - + protected BooleanExpression exp = null; - + /** - * Creates a new NOT <i>Expression</i> negating the argument expression + * Creates a new NOT <i>Expression</i> negating the argument expression * - * @param exp the <i>Expression</i> to negate + * @param exp the <i>Expression</i> to negate */ public NotExpression(BooleanExpression exp) { this.exp = exp; } - + /** - * Evaluates this <i>Expression</i> in the given + * Evaluates this <i>Expression</i> in the given * <i>Context</i> * * @param c the context to evaluate the <i>Expression</i> in @@ -58,6 +58,6 @@ public class NotExpression implements BooleanExpression { */ public boolean evaluate(VariableContext c) { - return (! exp.evaluate(c)); + return (! exp.evaluate(c)); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/aspectj/OrExpression.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/aspectj/OrExpression.java index e8b7b6e0a..f7791db02 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/aspectj/OrExpression.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/aspectj/OrExpression.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.interpreter.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,15 +15,15 @@ package ca.ubc.cs.spl.aspectPatterns.examples.interpreter.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ - + /** - * Implements an OR <i>Expression</i> for booleans. + * Implements an OR <i>Expression</i> for booleans. * This is a concrete boolean <i>NonterminalExpression</i> * * @author Jan Hannemann @@ -36,27 +36,27 @@ public class OrExpression implements BooleanExpression { /** * stores the first part of this OR <i>Expression</i> */ - + protected BooleanExpression expression1; /** * stores the second part of this OR <i>Expression</i> */ - protected BooleanExpression expression2; + protected BooleanExpression expression2; - /** + /** * Creates a new OR <i>Expression</i> with the given parts * * @param op1 the first <i>Expression</i> * @param op1 the second <i>Expression</i> - */ - + */ + public OrExpression(BooleanExpression op1, BooleanExpression op2) { this.expression1 = op1; this.expression2 = op2; } - + /** * Evaluates this <i>Expression</i> in the given <i>Context</i> * @@ -65,6 +65,6 @@ public class OrExpression implements BooleanExpression { */ public boolean evaluate(VariableContext c) { - return (expression1.evaluate(c) || expression2.evaluate(c)); + return (expression1.evaluate(c) || expression2.evaluate(c)); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/aspectj/VariableContext.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/aspectj/VariableContext.java index 51c2a3f54..ed4e80c87 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/aspectj/VariableContext.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/aspectj/VariableContext.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.interpreter.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -17,7 +17,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.interpreter.aspectj; * The Original Code is ca.ubc.cs.spl.aspectPatterns. * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * * Contributor(s): */ @@ -68,4 +68,4 @@ public class VariableContext { public void assign(VariableExpression varExp, boolean bool) { assignments.put(varExp.getName(), new Boolean(bool)); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/aspectj/VariableExpression.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/aspectj/VariableExpression.java index 48668bb6b..36c622b5d 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/aspectj/VariableExpression.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/aspectj/VariableExpression.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.interpreter.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,15 +15,15 @@ package ca.ubc.cs.spl.aspectPatterns.examples.interpreter.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** - * Implements a variable expression for booleans. This is a concrete + * Implements a variable expression for booleans. This is a concrete * boolean <i>NonterminalExpression</i> * expression * @@ -33,29 +33,29 @@ package ca.ubc.cs.spl.aspectPatterns.examples.interpreter.aspectj; */ public class VariableExpression implements BooleanExpression { - - /** + + /** * the name of the variable this object represents */ - - protected String name = null; - + + protected String name = null; + /** - * Creates a new variable <i>Expression</i> with a given name + * Creates a new variable <i>Expression</i> with a given name * - * @param name the name of the new variable + * @param name the name of the new variable */ public VariableExpression(String name) { this.name = name; - } - + } + /** * Accessor for the variable's name * * @return the name of the variable */ - + public String getName() { return name; } @@ -70,4 +70,4 @@ public class VariableExpression implements BooleanExpression { public boolean evaluate(VariableContext c) { return c.lookup(name); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/java/AndExpression.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/java/AndExpression.java index 89b5243e6..f39f00dec 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/java/AndExpression.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/java/AndExpression.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.interpreter.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,15 +15,15 @@ package ca.ubc.cs.spl.aspectPatterns.examples.interpreter.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** - * Implements AND expressions for booleans. This is a concrete boolean + * Implements AND expressions for booleans. This is a concrete boolean * <i>NonterminalExpression</i> * * @author Jan Hannemann @@ -36,39 +36,39 @@ public class AndExpression implements BooleanExpression { /** * stores the first part of this AND <i>Expression</i> */ - + protected BooleanExpression expression1; /** * stores the second part of this AND <i>Expression</i> */ - protected BooleanExpression expression2; + protected BooleanExpression expression2; - /** + /** * Creates a new AND <i>Expression</i> with the given parts * * @param expression1 the first <i>Expression</i> * @param expression1 the second <i>Expression</i> - */ - + */ + public AndExpression(BooleanExpression op1, BooleanExpression op2) { this.expression1 = op1; this.expression2 = op2; } - + /** - * Evaluates this <i>Expression</i> in the given + * Evaluates this <i>Expression</i> in the given * <code>VariableContext</code> * * @param c the <i>Context</i> to evaluate the <i>Expression</i> in * @return the boolean value of this AND <i>Expression</i> */ - + public boolean evaluate(VariableContext c) { - return (expression1.evaluate(c) && expression2.evaluate(c)); + return (expression1.evaluate(c) && expression2.evaluate(c)); } - + /** * Replaces a variable with an <i>Expression</i> * @@ -80,14 +80,14 @@ public class AndExpression implements BooleanExpression { public BooleanExpression replace(String name, BooleanExpression exp) { return new AndExpression(expression1.replace(name, exp), expression2.replace(name,exp)); } - + /** * Copies this <i>Expression</i> * * @returns the copied <i>Expression</i> */ - + public BooleanExpression copy() { return new AndExpression(expression1.copy(), expression2.copy()); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/java/BooleanConstant.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/java/BooleanConstant.java index 8d6c13ab0..e5c60c52a 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/java/BooleanConstant.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/java/BooleanConstant.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.interpreter.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,11 +15,11 @@ package ca.ubc.cs.spl.aspectPatterns.examples.interpreter.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** @@ -30,20 +30,20 @@ package ca.ubc.cs.spl.aspectPatterns.examples.interpreter.java; * @version 1.1, 02/11/04 */ -public class BooleanConstant implements BooleanExpression { +public class BooleanConstant implements BooleanExpression { /** * the value of this constant */ - + protected boolean value; - /** - * Creates a new constant with the given value + /** + * Creates a new constant with the given value * * @param value the value this constant should represent - */ - + */ + public BooleanConstant(boolean value) { this.value = value; } @@ -58,27 +58,27 @@ public class BooleanConstant implements BooleanExpression { public boolean evaluate(VariableContext c) { return value; } - + /** - * Replaces a variable with an <i>Expression</i>. + * Replaces a variable with an <i>Expression</i>. * Has no effect on constants. * * @param name the name of the variable * @param exp the <i>Expression</i> to replace the variable * @return the unchanged constant */ - + public BooleanExpression replace(String name, BooleanExpression exp) { - return this; + return this; } - + /** * Copies this <i>Expression</i> * * @return the copied <i>Expression</i> */ - + public BooleanExpression copy() { return new BooleanConstant(value); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/java/BooleanExpression.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/java/BooleanExpression.java index 502be4c75..7ccc2752d 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/java/BooleanExpression.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/java/BooleanExpression.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.interpreter.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,11 +15,11 @@ package ca.ubc.cs.spl.aspectPatterns.examples.interpreter.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** @@ -31,14 +31,14 @@ package ca.ubc.cs.spl.aspectPatterns.examples.interpreter.java; */ public interface BooleanExpression { - + /** * Evaluates this <i>Expression</i> in the given <i>VariableContext</i> * * @param c the <i>Context</i> to evaluate the <i>Expression</i> in * @return the boolean value of the <i>Expression</i> */ - + public boolean evaluate(VariableContext c); /** @@ -48,7 +48,7 @@ public interface BooleanExpression { * @param exp the <i>Expression</i> to replace the variable * @return a copy of this <i>Expression</i> with the variable replaced */ - + public BooleanExpression replace(String name, BooleanExpression exp); /** @@ -56,6 +56,6 @@ public interface BooleanExpression { * * @return the copied <i>Expression</i> */ - + public BooleanExpression copy(); -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/java/ExpressionException.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/java/ExpressionException.java index faeeb984c..b69729553 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/java/ExpressionException.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/java/ExpressionException.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.interpreter.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,11 +15,11 @@ package ca.ubc.cs.spl.aspectPatterns.examples.interpreter.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** @@ -32,14 +32,14 @@ package ca.ubc.cs.spl.aspectPatterns.examples.interpreter.java; */ public class ExpressionException extends RuntimeException { - + /** * Creates a new ExpressionException with the given message * * @param s the exception message */ - + public ExpressionException(String s) { super(s); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/java/Main.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/java/Main.java index 5cc790967..8daeac1ec 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/java/Main.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/java/Main.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.interpreter.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,47 +15,47 @@ package ca.ubc.cs.spl.aspectPatterns.examples.interpreter.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** - * Implements the driver for the Intepreter design pattern example.<p> + * Implements the driver for the Intepreter design pattern example.<p> * * Intent: <i>Given a language, define a representation for its grammar along * with an interpreter that uses the representation to interpret sentences * in the language.</i><p> * - * Participating objects are: <code>BooleanContant</code> as - * <i>TerminalExpression</i>; <code>VariableExpression</code>, - * <code>OrExpression</code>, <code>AndExpression</code>, and - * <code>NotExpression</code> as <i>NonterminalExpressions</i>. - * - * The <i>AbstractExpression</i> interface is defined + * Participating objects are: <code>BooleanContant</code> as + * <i>TerminalExpression</i>; <code>VariableExpression</code>, + * <code>OrExpression</code>, <code>AndExpression</code>, and + * <code>NotExpression</code> as <i>NonterminalExpressions</i>. + * + * The <i>AbstractExpression</i> interface is defined * in <code>BooelanExp</i>.<p> * - * This example implements an interpreter for a language of boolean + * This example implements an interpreter for a language of boolean * expressions. As a sample expression, "((true & x) | (y & !x))" is - * interpreted for all possible boolean values for x and y. After that, + * interpreted for all possible boolean values for x and y. After that, * y is replaced by another expression and the whole expression is - * evaluated again. + * evaluated again. * * <p><i>This is the Java version.</i><p> * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/11/04 - * + * * @see BooleanExpression */ -public class Main { - - /** - * Assigns boolean values to two <code>VariableExpression</code>s +public class Main { + + /** + * Assigns boolean values to two <code>VariableExpression</code>s * and evaluates an expression in the given context. * * @param x a boolean variable expression @@ -66,12 +66,12 @@ public class Main { * @param exp the expression to evaluate */ - private static void assignAndEvaluate( - VariableExpression x, + private static void assignAndEvaluate( + VariableExpression x, boolean xValue, - VariableExpression y, + VariableExpression y, boolean yValue, - VariableContext context, + VariableContext context, BooleanExpression exp) { context.assign(x, xValue); context.assign(y, yValue); @@ -80,7 +80,7 @@ public class Main { } /** - * Implements the driver for the Intepreter design pattern example.<p> + * Implements the driver for the Intepreter design pattern example.<p> * * @param command-line parameters, unused. */ @@ -88,23 +88,23 @@ public class Main { public static void main(String[] args) { BooleanExpression exp = null; VariableContext context = new VariableContext(); - + VariableExpression x = new VariableExpression("X"); - VariableExpression y = new VariableExpression("Y"); - - exp = new OrExpression(new AndExpression(new BooleanConstant(true), x), + VariableExpression y = new VariableExpression("Y"); + + exp = new OrExpression(new AndExpression(new BooleanConstant(true), x), new AndExpression(y, new NotExpression(x))); - - System.out.println("Testing Expression: ((true & x) | (y & !x))"); + + System.out.println("Testing Expression: ((true & x) | (y & !x))"); assignAndEvaluate(x, false, y, false, context, exp); assignAndEvaluate(x, false, y, true, context, exp); assignAndEvaluate(x, true, y, false, context, exp); assignAndEvaluate(x, true, y, true, context, exp); - + VariableExpression z = new VariableExpression("Z"); NotExpression notZ = new NotExpression(z); - + BooleanExpression replacement = exp.replace("Y", notZ); context.assign(z, false); boolean result = replacement.evaluate(context); @@ -112,4 +112,3 @@ public class Main { System.out.println("The result for the replacement is: "+result); } } -
\ No newline at end of file diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/java/NotExpression.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/java/NotExpression.java index 298d4e2ee..ac09825e9 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/java/NotExpression.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/java/NotExpression.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.interpreter.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -17,7 +17,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.interpreter.java; * The Original Code is ca.ubc.cs.spl.aspectPatterns. * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * * Contributor(s): */ @@ -82,4 +82,4 @@ public class NotExpression implements BooleanExpression { public BooleanExpression copy() { return new NotExpression(exp.copy()); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/java/OrExpression.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/java/OrExpression.java index c2a3f2485..0da3745e6 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/java/OrExpression.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/java/OrExpression.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.interpreter.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -17,7 +17,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.interpreter.java; * The Original Code is ca.ubc.cs.spl.aspectPatterns. * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * * Contributor(s): */ @@ -89,4 +89,4 @@ public class OrExpression implements BooleanExpression { public BooleanExpression copy() { return new OrExpression(expression1.copy(), expression2.copy()); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/java/VariableContext.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/java/VariableContext.java index c9f59d0e4..20e8d2f75 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/java/VariableContext.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/java/VariableContext.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.interpreter.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,17 +15,17 @@ package ca.ubc.cs.spl.aspectPatterns.examples.interpreter.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ import java.util.Hashtable; /** - * Implements a <i>Context</i> for the interpretation of boolean + * Implements a <i>Context</i> for the interpretation of boolean * expressions<p> * * @author Jan Hannemann @@ -33,8 +33,8 @@ import java.util.Hashtable; * @version 1.1, 02/11/04 */ -public class VariableContext { - +public class VariableContext { + /** * stores the mapping between variable names and values */ @@ -47,23 +47,23 @@ public class VariableContext { * @param name the name of the variable * @return the value of the variable */ - + public boolean lookup(String name) { Boolean value = (Boolean) assignments.get(name); if (value == null) { throw new ExpressionException("No variable \""+name+"\" known."); } return value.booleanValue(); - } - + } + /** * Assigns a boolean value to a <code>VariableExpression</code> * * @param varExp the varaible <i>Expression</i> to assign a value to - * @param bool the boolean value to assign + * @param bool the boolean value to assign */ - + public void assign(VariableExpression varExp, boolean bool) { assignments.put(varExp.getName(), new Boolean(bool)); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/java/VariableExpression.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/java/VariableExpression.java index caa429898..bbdffdfc4 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/java/VariableExpression.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/interpreter/java/VariableExpression.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.interpreter.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,15 +15,15 @@ package ca.ubc.cs.spl.aspectPatterns.examples.interpreter.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** - * Implements a variable expression for booleans. This is a concrete + * Implements a variable expression for booleans. This is a concrete * boolean <i>NonterminalExpression</i> * expression * @@ -33,29 +33,29 @@ package ca.ubc.cs.spl.aspectPatterns.examples.interpreter.java; */ public class VariableExpression implements BooleanExpression { - - /** + + /** * the name of the variable this object represents */ - - protected String name = null; - + + protected String name = null; + /** - * Creates a new <code>VariableExpression</code> with the given name + * Creates a new <code>VariableExpression</code> with the given name * - * @param name the name of the new variable + * @param name the name of the new variable */ public VariableExpression(String name) { this.name = name; - } - + } + /** * Accessor for the variable's name * * @return the name of the variable */ - + public String getName() { return name; } @@ -70,7 +70,7 @@ public class VariableExpression implements BooleanExpression { public boolean evaluate(VariableContext c) { return c.lookup(name); } - + /** * Replaces a variable with an <i>Expression</i> * @@ -86,14 +86,14 @@ public class VariableExpression implements BooleanExpression { return new VariableExpression(this.name); } } - + /** * Copies this <i>Expression</i> * * @return the copied <i>Expression</i> */ - + public BooleanExpression copy() { return new VariableExpression(name); - } -}
\ No newline at end of file + } +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/iterator/aspectj/Main.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/iterator/aspectj/Main.java index 5afe1bc77..6d7ceb34b 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/iterator/aspectj/Main.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/iterator/aspectj/Main.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.iterator.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,17 +15,17 @@ package ca.ubc.cs.spl.aspectPatterns.examples.iterator.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ import java.util.Iterator; - + /** - * Implements the driver for the Iterator design pattern example.<p> + * Implements the driver for the Iterator design pattern example.<p> * * Intent: <i>Provide a way to access the elements of an aggregate object * sequentially without exposing its underlying representation.</i><p> @@ -35,8 +35,8 @@ import java.util.Iterator; * java.util.Iterator</code> as <i>Iterator</i>, and <code>ReverseIterator * </code> as <i>ConcreteIterator</i>. * - * In this example, the concrete aggregate is a list that gets filled with - * five integer objects (1 to 5). The, the <code>ReverseIterator</code> is + * In this example, the concrete aggregate is a list that gets filled with + * five integer objects (1 to 5). The, the <code>ReverseIterator</code> is * created and used to print all elements in reverse order. * * <p><i>This is the AspectJ version.</i><p> @@ -45,7 +45,7 @@ import java.util.Iterator; * @author Gregor Kiczales * @version 1.1, 02/12/04 * - * @see SimpleList + * @see SimpleList * @see OpenList * @see java.util.Iterator * @see OpenListIteration @@ -53,46 +53,46 @@ import java.util.Iterator; public class Main { - + /** * Prints all elements in the iterator to <code>System.out</code>. * * @param iter the iterator which elements are to be printed - */ - - private static void print(Iterator iter) { + */ + + private static void print(Iterator iter) { while(iter.hasNext()) { System.out.println(iter.next()); } } - + /** - * Implements the driver for the Iterator design pattern example.<p> + * Implements the driver for the Iterator design pattern example.<p> * - * In this example, the concrete aggregate is a list that gets filled with - * five integer objects (1 to 5). The, the <code>ReverseIterator</code> is - * created and used to print all elements in reverse order. + * In this example, the concrete aggregate is a list that gets filled with + * five integer objects (1 to 5). The, the <code>ReverseIterator</code> is + * created and used to print all elements in reverse order. * * @param args command line paramters, unused */ - + public static void main(String[] args) { - + OpenList openList = new OpenList(); openList.append(new Integer(1)); - openList.append(new Integer(2)); + openList.append(new Integer(2)); openList.append(new Integer(3)); openList.append(new Integer(4)); - openList.append(new Integer(5)); - + openList.append(new Integer(5)); + System.out.println("List created, containing int objects 1, 2, 3, 4, 5."); - + Iterator iter = OpenListIteration.aspectOf().createIteratorFor(openList); - + System.out.println("Using ReverseIterator to print list elements in reverse order..."); print(iter); System.out.println("done."); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/iterator/aspectj/OpenList.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/iterator/aspectj/OpenList.java index 7eb5d04a1..f3351b060 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/iterator/aspectj/OpenList.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/iterator/aspectj/OpenList.java @@ -1,4 +1,4 @@ -package ca.ubc.cs.spl.aspectPatterns.examples.iterator.aspectj; +package ca.ubc.cs.spl.aspectPatterns.examples.iterator.aspectj; /* -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- * @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.iterator.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,18 +15,18 @@ package ca.ubc.cs.spl.aspectPatterns.examples.iterator.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ import java.util.Iterator; /** - * Implements a basic open list. This implementation is based on - * <code>java.util.LinkedList</code>. In essence, this class acts as an + * Implements a basic open list. This implementation is based on + * <code>java.util.LinkedList</code>. In essence, this class acts as an * adapter for the Java class. <p> * * In this version, it is no longer necessary to implement the factory @@ -38,51 +38,51 @@ import java.util.Iterator; */ public class OpenList implements SimpleList { - + java.util.LinkedList list = new java.util.LinkedList(); - - /** + + /** * Returns the number of elements in the list * * @return the number of elements in the list */ - + public int count() { return list.size(); } - + /** - * Appends an object to the list. Since this is an open list, inserting + * Appends an object to the list. Since this is an open list, inserting * elements is assumed to succeed. * * @param o the object to append * @return true if successful, false otherwise */ - + public boolean append(Object o) { list.addLast(o); return true; } - + /** * Removes an object from the list * * @param o the object to remove * @return true if successful, false otherwise */ - + public boolean remove(Object o) { - return list.remove(o); - } - + return list.remove(o); + } + /** * Returns an object from the list * * @param index the position of the object * @return the object at position index */ - + public Object get(int index) { return list.get(index); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/iterator/aspectj/OpenListIteration.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/iterator/aspectj/OpenListIteration.java index 0fc2b1724..9b4a76ad1 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/iterator/aspectj/OpenListIteration.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/iterator/aspectj/OpenListIteration.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.iterator.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,11 +15,11 @@ package ca.ubc.cs.spl.aspectPatterns.examples.iterator.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ import java.util.NoSuchElementException; @@ -34,12 +34,12 @@ import java.util.Iterator; * @author Gregor Kiczales * @version 1.1, 02/12/04 * - * @see SimpleList + * @see SimpleList * @see OpenList */ -public aspect OpenListIteration { - +public aspect OpenListIteration { + /** * Implements the factory method to create the reverse iterator for the * OpenList class using the open classes mechanism. @@ -63,68 +63,67 @@ public aspect OpenListIteration { /** * Provides the implementation of the reverse iterator. Instead - * of defining an inner class, one could also instantiate + * of defining an inner class, one could also instantiate * <code>java.util.Iterator</code> as an anonymous class and overwrite * the appropriate methods. */ static class ReverseIterator implements Iterator { - + /** * the positition of the current element */ - - protected int current; - + + protected int current; + /** * the list this iterator operates on */ - - protected SimpleList list; - + + protected SimpleList list; + /** * Returns true if the iteration has more elements. * * @return true if the iteration has more elements */ - + public boolean hasNext() { return (current > 0); } - + /** * This opional method is not implemented for this iterator. - */ - + */ + public void remove() { throw new UnsupportedOperationException("remove() not supported"); - } - + } + /** * Returns the next element in the iteration. * - * @return the next element in the iteration. + * @return the next element in the iteration. */ - + public Object next() { if (!hasNext()) { - throw new ArrayIndexOutOfBoundsException("Iterator out of Bounds"); + throw new ArrayIndexOutOfBoundsException("Iterator out of Bounds"); } else { return list.get(--current); } } - + /** * Creates a new ReverseIterator from the given list. * * @param list the list to generate an iterator from */ - + public ReverseIterator(SimpleList list) { - super(); + super(); this.list = list; current = list.count(); } } } -
\ No newline at end of file diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/iterator/aspectj/SimpleList.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/iterator/aspectj/SimpleList.java index c8b7384c8..6b212d4fe 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/iterator/aspectj/SimpleList.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/iterator/aspectj/SimpleList.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.iterator.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,40 +15,40 @@ package ca.ubc.cs.spl.aspectPatterns.examples.iterator.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** - * Defines an interface for a basic list. + * Defines an interface for a basic list. * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/12/04 - * + * * @see OpenList */ -public interface SimpleList { - - /** +public interface SimpleList { + + /** * Returns the number of elements in the list * * @return the number of elements in the list */ - - public int count(); - + + public int count(); + /** * Appends an object to the list * * @param o the object to append * @return true if successful, false otherwise */ - + public boolean append(Object o); /** @@ -57,8 +57,8 @@ public interface SimpleList { * @param o the object to remove * @return true if successful, false otherwise */ - - public boolean remove(Object o); + + public boolean remove(Object o); /** * Returns an object from the list @@ -66,7 +66,6 @@ public interface SimpleList { * @param index the position of the object * @return the object at position index */ - + public Object get(int index); -} -
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/iterator/java/Main.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/iterator/java/Main.java index 03d378c91..84ccde10c 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/iterator/java/Main.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/iterator/java/Main.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.iterator.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -17,7 +17,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.iterator.java; * The Original Code is ca.ubc.cs.spl.aspectPatterns. * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * * Contributor(s): */ @@ -94,4 +94,4 @@ public class Main { System.out.println("done."); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/iterator/java/OpenList.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/iterator/java/OpenList.java index 31fcf7b6d..a3457d36e 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/iterator/java/OpenList.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/iterator/java/OpenList.java @@ -1,4 +1,4 @@ -package ca.ubc.cs.spl.aspectPatterns.examples.iterator.java; +package ca.ubc.cs.spl.aspectPatterns.examples.iterator.java; /* -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- * @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.iterator.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,18 +15,18 @@ package ca.ubc.cs.spl.aspectPatterns.examples.iterator.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ import java.util.Iterator; /** - * Implements a basic open list. This implementation is based on - * <code>java.util.LinkedList</code>. In essence, this class acts as an + * Implements a basic open list. This implementation is based on + * <code>java.util.LinkedList</code>. In essence, this class acts as an * adapter for the Java class. * * @author Jan Hannemann @@ -35,61 +35,61 @@ import java.util.Iterator; */ public class OpenList implements SimpleList { - + java.util.LinkedList list = new java.util.LinkedList(); - - /** + + /** * Returns the number of elements in the list * * @return the number of elements in the list */ - + public int count() { return list.size(); } - + /** - * Appends an object to the list. Since this is an open list, inserting + * Appends an object to the list. Since this is an open list, inserting * elements is assumed to succeed. * * @param o the object to append * @return true if successful, false otherwise */ - + public boolean append(Object o) { list.addLast(o); return true; } - + /** * Removes an object from the list * * @param o the object to remove * @return true if successful, false otherwise */ - + public boolean remove(Object o) { - return list.remove(o); - } - + return list.remove(o); + } + /** * Returns an object from the list * * @param index the position of the object - * @return the object at the specified index + * @return the object at the specified index */ - + public Object get(int index) { return list.get(index); } - + /** - * Returns a reverse iterator for this list. + * Returns a reverse iterator for this list. * * @return the a reverse iterator for this list */ - + public Iterator createReverseIterator() { return new ReverseIterator(this); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/iterator/java/ReverseIterator.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/iterator/java/ReverseIterator.java index 160f8c77b..34708a4a0 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/iterator/java/ReverseIterator.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/iterator/java/ReverseIterator.java @@ -1,4 +1,4 @@ -package ca.ubc.cs.spl.aspectPatterns.examples.iterator.java; +package ca.ubc.cs.spl.aspectPatterns.examples.iterator.java; /* -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- * @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.iterator.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,19 +15,19 @@ package ca.ubc.cs.spl.aspectPatterns.examples.iterator.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ import java.util.Iterator; /** - * Implements a reverse iterator. This means that it will return elements in - * reverse order. We chose not to define our own <i>Iterator</i>, but to use - * Java's <code>java.util.Iterator</code> interface. + * Implements a reverse iterator. This means that it will return elements in + * reverse order. We chose not to define our own <i>Iterator</i>, but to use + * Java's <code>java.util.Iterator</code> interface. * * @author Jan Hannemann * @author Gregor Kiczales @@ -35,60 +35,60 @@ import java.util.Iterator; */ public class ReverseIterator implements Iterator { - + /** * the positition of the current element */ - protected int current; - + protected int current; + /** * the list this iterator operates on */ - - protected SimpleList list; - + + protected SimpleList list; + /** * Returns true if the iteration has more elements. * * @return true if the iteration has more elements */ - + public boolean hasNext() { return (current > 0); } - + /** * This opional method is not implemented for this iterator. - */ - + */ + public void remove() { throw new UnsupportedOperationException("remove() not supported"); - } - + } + /** * Returns the next element in the iteration. * - * @return the next element in the iteration. + * @return the next element in the iteration. */ public Object next() { if (!hasNext()) { - throw new ArrayIndexOutOfBoundsException("Iterator out of Bounds"); + throw new ArrayIndexOutOfBoundsException("Iterator out of Bounds"); } else { return list.get(--current); } } - + /** * Creates a new ReverseIterator from the given list. * * @param list the list to generate an iterator from */ - + public ReverseIterator(SimpleList list) { - super(); + super(); this.list = list; current = list.count(); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/iterator/java/SimpleList.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/iterator/java/SimpleList.java index 9fa573282..d28f1f622 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/iterator/java/SimpleList.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/iterator/java/SimpleList.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.iterator.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,40 +15,40 @@ package ca.ubc.cs.spl.aspectPatterns.examples.iterator.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** - * Defines an interface for a basic list. + * Defines an interface for a basic list. * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/12/04 - * + * * @see OpenList */ -public interface SimpleList { - - /** +public interface SimpleList { + + /** * Returns the number of elements in the list * * @return the number of elements in the list */ - - public int count(); - + + public int count(); + /** * Appends an object to the list * * @param o the object to append * @return true if successful, false otherwise */ - + public boolean append(Object o); /** @@ -57,8 +57,8 @@ public interface SimpleList { * @param o the object to remove * @return true if successful, false otherwise */ - - public boolean remove(Object o); + + public boolean remove(Object o); /** * Returns an object from the list at a given index @@ -66,7 +66,6 @@ public interface SimpleList { * @param index the position of the object * @return the object at position index */ - + public Object get(int index); -} -
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/mediator/aspectj/Button.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/mediator/aspectj/Button.java index 3ba0ee59f..d64908023 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/mediator/aspectj/Button.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/mediator/aspectj/Button.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.mediator.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,20 +15,20 @@ package ca.ubc.cs.spl.aspectPatterns.examples.mediator.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ import javax.swing.JButton; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; -/** - * Basically a <code>JButton</code> with an <code>ActionListener</code>. - * The listener calls <code>clicked()</code> when the button gets pressed. +/** + * Basically a <code>JButton</code> with an <code>ActionListener</code>. + * The listener calls <code>clicked()</code> when the button gets pressed. * * @author Jan Hannemann * @author Gregor Kiczales @@ -36,22 +36,22 @@ import java.awt.event.ActionEvent; */ public class Button extends JButton { - + /** * Creates a new <code>Button</code> object with the provided label. * - * @param name the label for the new <code>Button</code> object + * @param name the label for the new <code>Button</code> object */ - + public Button(String name) { super(name); this.setActionCommand(name); this.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { - clicked(); + clicked(); } - }); + }); } - - public void clicked() {} -}
\ No newline at end of file + + public void clicked() {} +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/mediator/aspectj/Label.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/mediator/aspectj/Label.java index d19f6bef2..a63b3a88f 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/mediator/aspectj/Label.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/mediator/aspectj/Label.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.mediator.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,17 +15,17 @@ package ca.ubc.cs.spl.aspectPatterns.examples.mediator.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ - + import javax.swing.*; -/** - * Basically a JLabel. Acts as <i>Mediator</i>. +/** + * Basically a JLabel. Acts as <i>Mediator</i>. * * @author Jan Hannemann * @author Gregor Kiczales @@ -33,14 +33,14 @@ import javax.swing.*; */ public class Label extends JLabel { - + /** * Creates a new <code>Label</code> object with the provided name. * - * @param s the tag for the new <code>Label</code> object + * @param s the tag for the new <code>Label</code> object */ - + public Label(String s) { super(s); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/mediator/aspectj/Main.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/mediator/aspectj/Main.java index 605b6ed3f..68092abe7 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/mediator/aspectj/Main.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/mediator/aspectj/Main.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.mediator.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,21 +15,21 @@ package ca.ubc.cs.spl.aspectPatterns.examples.mediator.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ - + import javax.swing.*; import java.awt.event.*; /** - * Implements the driver for the mediator design pattern example.<p> + * Implements the driver for the mediator design pattern example.<p> * * Intent: <i>Define an object that encapsulates how a set of objects - * interact. Mediator promotes loose coupling by keeping objects from + * interact. Mediator promotes loose coupling by keeping objects from * referring to each other explicitly, and it lets you vary their interaction * independently.</i><p> * @@ -44,15 +44,15 @@ import java.awt.event.*; * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/12/04 - * + * * @see Button * @see Label */ - + public class Main { - - static JFrame frame = new JFrame("Mediator Demo"); + + static JFrame frame = new JFrame("Mediator Demo"); static Button button1 = new Button("Button1"); static Button button2 = new Button("Button2"); static Label label = new Label ("Click a button!"); @@ -60,30 +60,30 @@ public class Main { /** * Implements the driver for the mediator example. It creates a small * GUI with a label and two buttons. The buttons are <i>Colleague</i>s, - * the label is the <i>Mediator</i>. + * the label is the <i>Mediator</i>. * * Each button click causes the mediator to update itself and the * calling button. - */ - + */ + public static void main(String[] args) {; - + frame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) {System.exit(0);} }); - + JPanel panel = new JPanel(); - + panel.add(label); panel.add(button1); - panel.add(button2); - + panel.add(button2); + frame.getContentPane().add(panel); frame.pack(); - frame.setVisible(true); - - MediatorImplementation.aspectOf().setMediator(button1, label); - MediatorImplementation.aspectOf().setMediator(button2, label); + frame.setVisible(true); + + MediatorImplementation.aspectOf().setMediator(button1, label); + MediatorImplementation.aspectOf().setMediator(button2, label); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/mediator/aspectj/MediatorImplementation.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/mediator/aspectj/MediatorImplementation.java index 8a3a9e31b..f09a3e90f 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/mediator/aspectj/MediatorImplementation.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/mediator/aspectj/MediatorImplementation.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.mediator.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,19 +15,19 @@ package ca.ubc.cs.spl.aspectPatterns.examples.mediator.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ - + import ca.ubc.cs.spl.aspectPatterns.patternLibrary.MediatorProtocol; /** - * Concretizes the mediation relationship for <code>Button</code> - * (as <i>Colleague</i>) and <code>Label</code> (as <i>Mediator</i>). - * <code>Button</code> clicks trigger <code>Label</code> updates. + * Concretizes the mediation relationship for <code>Button</code> + * (as <i>Colleague</i>) and <code>Label</code> (as <i>Mediator</i>). + * <code>Button</code> clicks trigger <code>Label</code> updates. * * @author Jan Hannemann * @author Gregor Kiczales @@ -37,44 +37,44 @@ import ca.ubc.cs.spl.aspectPatterns.patternLibrary.MediatorProtocol; public aspect MediatorImplementation extends MediatorProtocol { /** - * Assings the <i>Colleague</i> role to the <code>Button</code> + * Assings the <i>Colleague</i> role to the <code>Button</code> * class. Roles are modeled as (empty) interfaces. */ - + declare parents: Button implements Colleague; /** - * Assings the <i>Mediator</i> role to the <code>Label</code> + * Assings the <i>Mediator</i> role to the <code>Label</code> * class. Roles are modeled as (empty) interfaces. */ declare parents: Label implements Mediator; /** - * Defines what changes on Colleagues cause their <i>Mediator</i> to be + * Defines what changes on Colleagues cause their <i>Mediator</i> to be * notified (here: Button clicks) * * @param cs the colleague on which the change occured */ - protected pointcut change(Colleague c): + protected pointcut change(Colleague c): (call(void Button.clicked()) && target(c)); /** * Defines how the <i>Mediator</i> is to be updated when a change - * to a <i>Colleague</i> occurs. Here, the label's text is set - * depending on which button was clicked. The appropriate button's label + * to a <i>Colleague</i> occurs. Here, the label's text is set + * depending on which button was clicked. The appropriate button's label * is also updated. * * @param c the colleague on which a change of interest occured - * @param m the mediator to be notifed of the change + * @param m the mediator to be notifed of the change */ protected void notifyMediator(Colleague c, Mediator m) { Button button = (Button) c; - Label label = (Label) m; + Label label = (Label) m; if (button == Main.button1) { - label.setText("Button1 clicked"); + label.setText("Button1 clicked"); } else if (button == Main.button2) { label.setText("Button2 clicked"); } diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/mediator/java/Button.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/mediator/java/Button.java index 6c6854033..83f1b2566 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/mediator/java/Button.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/mediator/java/Button.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.mediator.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,57 +15,57 @@ package ca.ubc.cs.spl.aspectPatterns.examples.mediator.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ import javax.swing.JButton; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; -/** - * Basically a <code>JButton</code> with an <code>ActionListener</code>. - * The listener calls <code>clicked()</code> when the button gets pressed. +/** + * Basically a <code>JButton</code> with an <code>ActionListener</code>. + * The listener calls <code>clicked()</code> when the button gets pressed. * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/12/04 */ -public class Button extends JButton implements GUIColleague { - +public class Button extends JButton implements GUIColleague { + private GUIMediator mediator; - + /** * Creates a new <code>Button</code> object with the provided label. * - * @param name the label for the new <code>Button</code> object + * @param name the label for the new <code>Button</code> object */ - + public Button(String name) { super(name); this.setActionCommand(name); this.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { - clicked(); + clicked(); } - }); + }); } - + public void clicked() { mediator.colleagueChanged(this); - } - + } + /** * Allows to set the <i>Mediator</i> for this <i>Colleague</i> * * @param mediator the new mediator */ - + public void setMediator(GUIMediator mediator) { this.mediator = mediator; } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/mediator/java/GUIColleague.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/mediator/java/GUIColleague.java index 69c281432..7202da1f0 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/mediator/java/GUIColleague.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/mediator/java/GUIColleague.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.mediator.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,30 +15,30 @@ package ca.ubc.cs.spl.aspectPatterns.examples.mediator.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ - + /** * This interface is implemented by all types that the <i>Mediator</i> * interacts with. - * + * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/12/04 */ - + public interface GUIColleague { /** - * Defines the method signature for setting a <i>Colleague</i>'s + * Defines the method signature for setting a <i>Colleague</i>'s * <i>Mediator</i>. * * @param mediator the new mediator */ - + public void setMediator(GUIMediator mediator); -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/mediator/java/GUIMediator.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/mediator/java/GUIMediator.java index 61efcfc84..d253af74a 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/mediator/java/GUIMediator.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/mediator/java/GUIMediator.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.mediator.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,31 +15,31 @@ package ca.ubc.cs.spl.aspectPatterns.examples.mediator.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** * This is the <i>Mediator</i> interface. It defines a method for dealing - * with changes in <i>Colleague</i>s that require updates. + * with changes in <i>Colleague</i>s that require updates. * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/12/04 */ - + public interface GUIMediator { - + /** - * Defines the method signature for notifying <i>Mediator</i>s of changes - * to <i>Colleague</i>s. This method is called by colleagues who + * Defines the method signature for notifying <i>Mediator</i>s of changes + * to <i>Colleague</i>s. This method is called by colleagues who * pass themselves as an argument (push model). * * @param colleague the changing colleage */ - + public void colleagueChanged(GUIColleague colleague); -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/mediator/java/Label.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/mediator/java/Label.java index 2146ff340..1e80e107d 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/mediator/java/Label.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/mediator/java/Label.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.mediator.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,17 +15,17 @@ package ca.ubc.cs.spl.aspectPatterns.examples.mediator.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ - + import javax.swing.*; -/** - * Basically a JLabel. Acts as <i>Mediator</i>. +/** + * Basically a JLabel. Acts as <i>Mediator</i>. * * @author Jan Hannemann * @author Gregor Kiczales @@ -33,31 +33,31 @@ import javax.swing.*; */ public class Label extends JLabel implements GUIMediator { - + /** * Creates a new <code>Label</code> object with the provided name. * - * @param s the tag for the new <code>Label</code> object + * @param s the tag for the new <code>Label</code> object */ - + public Label(String s) { super(s); } /** - * Handles the event that a <i>colleague</i> chanbged. + * Handles the event that a <i>colleague</i> chanbged. * - * @param colleague the <i>Colleague</i> that caused the notification + * @param colleague the <i>Colleague</i> that caused the notification */ - - public void colleagueChanged(GUIColleague colleague) { + + public void colleagueChanged(GUIColleague colleague) { Button button = (Button) colleague; - + if (button == Main.button1) { - this.setText("Button1 clicked"); + this.setText("Button1 clicked"); } else if (button == Main.button2) { this.setText("Button2 clicked"); } button.setText("(Done)"); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/mediator/java/Main.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/mediator/java/Main.java index 7fcf668f1..c2b7dcb74 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/mediator/java/Main.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/mediator/java/Main.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.mediator.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,21 +15,21 @@ package ca.ubc.cs.spl.aspectPatterns.examples.mediator.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ - + import javax.swing.*; import java.awt.event.*; /** - * Implements the driver for the Mediator design pattern example.<p> + * Implements the driver for the Mediator design pattern example.<p> * * Intent: <i>Define an object that encapsulates how a set of objects - * interact. Mediator promotes loose coupling by keeping objects from + * interact. Mediator promotes loose coupling by keeping objects from * referring to each other explicitly, and it lets you vary their interaction * independently.</i><p> * @@ -37,10 +37,10 @@ import java.awt.event.*; * and a <code>Label</code> as <i>Mediator</i>. * * Every time an event of interest (a button click) occurs, the mediating - * <code>Label</code> is updated and it in turn updates the respective + * <code>Label</code> is updated and it in turn updates the respective * calling button. * - * <p><i>This is the Java version.</i><p> + * <p><i>This is the Java version.</i><p> * * Both <i>Mediator</i> and <i>Colleague</i>s have to be aware of their role * within the pattern. @@ -48,15 +48,15 @@ import java.awt.event.*; * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/12/04 - * + * * @see Button * @see Label */ - + public class Main { - - static JFrame frame = new JFrame("Mediator Demo"); + + static JFrame frame = new JFrame("Mediator Demo"); static Button button1 = new Button("Button1"); static Button button2 = new Button("Button2"); static Label label = new Label ("Click a button!"); @@ -64,30 +64,30 @@ public class Main { /** * Implements the driver for the mediator example. It creates a small * GUI with a label and two buttons. The buttons are <i>Colleague</i>s, - * the label is the <i>Mediator</i>. + * the label is the <i>Mediator</i>. * * Each button click causes the mediator to update itself and the * calling button. - */ - + */ + public static void main(String[] args) {; - + frame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) {System.exit(0);} }); - + JPanel panel = new JPanel(); - + panel.add(label); panel.add(button1); - panel.add(button2); - + panel.add(button2); + frame.getContentPane().add(panel); frame.pack(); - frame.setVisible(true); - - button1.setMediator(label); - button2.setMediator(label); + frame.setVisible(true); + + button1.setMediator(label); + button2.setMediator(label); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/memento/aspectj/Counter.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/memento/aspectj/Counter.java index f3f395338..8bbc7a198 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/memento/aspectj/Counter.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/memento/aspectj/Counter.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.memento.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,16 +15,16 @@ package ca.ubc.cs.spl.aspectPatterns.examples.memento.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** - * Implements a sample <i>Originator</i> class. Objects of this particular - * <i>Originator</i> have state, an int representing the number of time + * Implements a sample <i>Originator</i> class. Objects of this particular + * <i>Originator</i> have state, an int representing the number of time * the <code>increment()</code> method was called. * * @author Jan Hannemann @@ -33,26 +33,26 @@ package ca.ubc.cs.spl.aspectPatterns.examples.memento.aspectj; */ public class Counter { - + /** * the number of times <code>increment()</code> was called on this object */ protected int currentValue = 0; - + /** * increments the counter (this <i>Originator</i>'s state) by one */ - public void increment() { - currentValue++; + public void increment() { + currentValue++; } - + /** * Displays the state of this <i>Originator</i> */ - public void show() { - System.out.println("Originator value is " + currentValue); + public void show() { + System.out.println("Originator value is " + currentValue); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/memento/aspectj/CounterMemento.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/memento/aspectj/CounterMemento.java index 48fd6aa3b..54efe9934 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/memento/aspectj/CounterMemento.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/memento/aspectj/CounterMemento.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.memento.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -17,7 +17,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.memento.aspectj; * The Original Code is ca.ubc.cs.spl.aspectPatterns. * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * * Contributor(s): */ @@ -89,4 +89,4 @@ public aspect CounterMemento extends MementoProtocol { throw new MementoException("Invalid originator"); } } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/memento/aspectj/Main.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/memento/aspectj/Main.java index ee2e2a85d..64baea31d 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/memento/aspectj/Main.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/memento/aspectj/Main.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.memento.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,19 +15,19 @@ package ca.ubc.cs.spl.aspectPatterns.examples.memento.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ -import ca.ubc.cs.spl.aspectPatterns.patternLibrary.Memento; +import ca.ubc.cs.spl.aspectPatterns.patternLibrary.Memento; /** - * Implements the driver for the Memento design pattern example.<p> + * Implements the driver for the Memento design pattern example.<p> * - * Intent: <i>Without violating encapsulation, capture and externalize an + * Intent: <i>Without violating encapsulation, capture and externalize an * object's internal state so that the object can be restored to this state * later</i><p> * @@ -39,14 +39,14 @@ import ca.ubc.cs.spl.aspectPatterns.patternLibrary.Memento; * are done, the <i>Memento</i> is used to restore the <i>Originator</i>'s * state. * - * <p><i>This is the AspectJ version.</i><p> + * <p><i>This is the AspectJ version.</i><p> * * Memento and Originator are decoupled. * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/12/04 - * + * * @see StateMemento * @see MyOriginator */ @@ -54,32 +54,32 @@ import ca.ubc.cs.spl.aspectPatterns.patternLibrary.Memento; public class Main { - + /** * This example changes the state of the <i>Originator</i> five times, but - * creates a <i>Memento</i> of it after the third change. After the 5 - * changes are done, the <i>Memento</i> is used to restore the - * <i>Originator</i>'s state. - * + * creates a <i>Memento</i> of it after the third change. After the 5 + * changes are done, the <i>Memento</i> is used to restore the + * <i>Originator</i>'s state. + * * @param args command line parameters, unused. */ - - public static void main(String[] args) { - - Memento storedState = null; - Counter counter = new Counter(); - + + public static void main(String[] args) { + + Memento storedState = null; + Counter counter = new Counter(); + for (int i=1; i<=5; i++) { counter.increment(); - counter.show(); - if (i==3) { - storedState = - CounterMemento.aspectOf().createMementoFor(counter); + counter.show(); + if (i==3) { + storedState = + CounterMemento.aspectOf().createMementoFor(counter); } } - + System.out.println("\nTrying to reinstate state (3)..."); CounterMemento.aspectOf().setMemento(counter, storedState); - counter.show(); + counter.show(); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/memento/java/Counter.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/memento/java/Counter.java index 83aca53fe..2a3d3a8aa 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/memento/java/Counter.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/memento/java/Counter.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.memento.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,16 +15,16 @@ package ca.ubc.cs.spl.aspectPatterns.examples.memento.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** - * Implements a sample <i>Originator</i> class. Objects of this particular - * <i>Originator</i> have state, an int representing the number of time + * Implements a sample <i>Originator</i> class. Objects of this particular + * <i>Originator</i> have state, an int representing the number of time * the <code>increment()</code> method was called. * * @author Jan Hannemann @@ -33,46 +33,46 @@ package ca.ubc.cs.spl.aspectPatterns.examples.memento.java; */ public class Counter { - + /** * the number of times <code>increment()</code> was called on this object */ protected int currentValue = 0; - + /** * increments the counter (this <i>Originator</i>'s state) by one */ - public void increment() { - currentValue++; + public void increment() { + currentValue++; } - + /** * Displays the state of this <i>Originator</i> */ - public void show() { - System.out.println("Originator value is " + currentValue); - } - + public void show() { + System.out.println("Originator value is " + currentValue); + } + /** - * Creates a <i>Memento</i> from this <i>Originator</i>, storing the + * Creates a <i>Memento</i> from this <i>Originator</i>, storing the * current state */ - public CounterMemento createMemento() { - return new CounterMemento(currentValue); + public CounterMemento createMemento() { + return new CounterMemento(currentValue); } - + /** - * Restores this <i>Originator</i> to former state stored by the + * Restores this <i>Originator</i> to former state stored by the * memento passed * * @param memento the <i>Memento</i> that stores the prior state */ - public void setMemento(CounterMemento memento) { - currentValue = memento.getState(); + public void setMemento(CounterMemento memento) { + currentValue = memento.getState(); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/memento/java/CounterMemento.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/memento/java/CounterMemento.java index f2b6dba23..2cedc373f 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/memento/java/CounterMemento.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/memento/java/CounterMemento.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.memento.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -17,7 +17,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.memento.java; * The Original Code is ca.ubc.cs.spl.aspectPatterns. * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * * Contributor(s): */ @@ -71,4 +71,4 @@ public class CounterMemento { public CounterMemento(int init) { state = init; } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/memento/java/Main.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/memento/java/Main.java index 0827c6972..02b131610 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/memento/java/Main.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/memento/java/Main.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.memento.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,17 +15,17 @@ package ca.ubc.cs.spl.aspectPatterns.examples.memento.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** - * Implements the driver for the memento design pattern example.<p> + * Implements the driver for the memento design pattern example.<p> * - * Intent: <i>Without violating encapsulation, capture and externalize an + * Intent: <i>Without violating encapsulation, capture and externalize an * object's internal state so that the object can be restored to this state * later</i><p> * @@ -37,7 +37,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.memento.java; * are done, the <i>Memento</i> is used to restore the <i>Originator</i>'s * state. * - * <p><i>This is the Java version.</i><p> + * <p><i>This is the Java version.</i><p> * * Memento and Originator are tightly coupled. * @@ -47,29 +47,29 @@ package ca.ubc.cs.spl.aspectPatterns.examples.memento.java; */ public class Main { - + /** * This example changes the state of the <i>Originator</i> five times, but - * creates a <i>Memento</i> of it after the third change. After the 5 - * changes are done, the <i>Memento</i> is used to restore the - * <i>Originator</i>'s state. + * creates a <i>Memento</i> of it after the third change. After the 5 + * changes are done, the <i>Memento</i> is used to restore the + * <i>Originator</i>'s state. */ - - public static void main(String[] args) { - + + public static void main(String[] args) { + CounterMemento storedState = null; - Counter counter = new Counter(); - + Counter counter = new Counter(); + for (int i=1; i<=5; i++) { counter.increment(); - counter.show(); - if (i==3) { - storedState = counter.createMemento(); + counter.show(); + if (i==3) { + storedState = counter.createMemento(); } } - + System.out.println("\nTrying to reinstate state (3)..."); counter.setMemento(storedState); - counter.show(); + counter.show(); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/observer/aspectj/ColorObserver.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/observer/aspectj/ColorObserver.java index 44af56c27..40c5bc137 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/observer/aspectj/ColorObserver.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/observer/aspectj/ColorObserver.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.observer.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -17,7 +17,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.observer.aspectj; * The Original Code is ca.ubc.cs.spl.aspectPatterns. * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * * Contributor(s): */ diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/observer/aspectj/CoordinateObserver.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/observer/aspectj/CoordinateObserver.java index ea5c9635c..202d5dca6 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/observer/aspectj/CoordinateObserver.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/observer/aspectj/CoordinateObserver.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.observer.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,18 +15,18 @@ package ca.ubc.cs.spl.aspectPatterns.examples.observer.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ import ca.ubc.cs.spl.aspectPatterns.patternLibrary.ObserverProtocol; /** - * Concretizes the observing relationship for <code>Point</code> (subject) - * and <code>Screen</code> (observer). Coordinate changes trigger updates. + * Concretizes the observing relationship for <code>Point</code> (subject) + * and <code>Screen</code> (observer). Coordinate changes trigger updates. * * @author Jan Hannemann * @author Gregor Kiczales @@ -40,33 +40,33 @@ public aspect CoordinateObserver extends ObserverProtocol{ * Assings the <i>Subject</i> role to the <code>Point</code> class. * Roles are modeled as (empty) interfaces. */ - + declare parents: Point implements Subject; /** * Assings the <i>Observer</i> role to the <code>Screen</code> class. * Roles are modeled as (empty) interfaces. */ - + declare parents: Screen implements Observer; /** * Specifies the join points that represent a change to the * <i>Subject</i>. Captures calls to <code>Point.setX(int) - * </code> and <code>Point.setY(int)</code>. + * </code> and <code>Point.setY(int)</code>. * @param subject the <code>Point</code> acting as <i>Subject</i> */ - protected pointcut subjectChange(Subject subject): + protected pointcut subjectChange(Subject subject): (call(void Point.setX(int)) || call(void Point.setY(int)) ) && target(subject); /** * Defines how <i>Observer</i>s are to be updated when a change - * to a <i>Subject</i> occurs. + * to a <i>Subject</i> occurs. * * @param subject the <i>Subject</i> on which a change of interest occured - * @param observer the <i>bserver</i> to be notifed of the change + * @param observer the <i>bserver</i> to be notifed of the change */ protected void updateObserver(Subject subject, Observer observer) { diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/observer/aspectj/Main.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/observer/aspectj/Main.java index 1e57db172..8ddd2f478 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/observer/aspectj/Main.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/observer/aspectj/Main.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.observer.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,20 +15,20 @@ package ca.ubc.cs.spl.aspectPatterns.examples.observer.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ -import java.awt.Color; +import java.awt.Color; /** * Implements the driver for the Observer design pattern example.<p> * * Intent: <i>Define a one-to-many dependency between objects so that when one - * object changes state, all its dependents are notified and updated + * object changes state, all its dependents are notified and updated * automatically</i><p> * * Participating objects are <code>Point</code> p and <code>Screen</code> @@ -39,7 +39,7 @@ import java.awt.Color; * </code> p. * <LI> <code>Screen</code> s3 and s4 observe coordinate changes of <code> * Point</code> p. - * <LI> <code>Screen</code> s5 observes the <code>display(String)</code> + * <LI> <code>Screen</code> s5 observes the <code>display(String)</code> * methods of <code>Screen</code> s2 and s4. * </UL> * @@ -52,61 +52,61 @@ import java.awt.Color; * @author Gregor Kiczales * @version 1.11, 04/01/04 */ - -public class Main { - + +public class Main { + /** - * Implements the driver for the Observer example. It creates five + * Implements the driver for the Observer example. It creates five * <code>Screen</code> objects and one <code>Point</code> object - * and sets the appropriate observing relationships (see above). - * After the setup, the color of the point is changed, then it's + * and sets the appropriate observing relationships (see above). + * After the setup, the color of the point is changed, then it's * x-coordinate. <p> * The following results should be expected: <OL> - * <LI> The color change should trigger s1 and s2 to each print an + * <LI> The color change should trigger s1 and s2 to each print an * appropriate message. * <LI> s2's message should trigger it's observer s5 to print * a message. * <LI> The coordinate change should trigger s3 and s4. - * <LI> s4's message should trigger it's observer s5 again. + * <LI> s4's message should trigger it's observer s5 again. * </OL> - */ + */ public static void main(String argv[]) { - + Point p = new Point(5, 5, Color.blue); - + System.out.println("Creating Screen s1,s2,s3,s4,s5 and Point p"); - + Screen s1 = new Screen("s1"); Screen s2 = new Screen("s2"); - + Screen s3 = new Screen("s3"); Screen s4 = new Screen("s4"); - + Screen s5 = new Screen("s5"); - System.out.println("Creating observing relationships:"); - System.out.println("- s1 and s2 observe color changes to p"); + System.out.println("Creating observing relationships:"); + System.out.println("- s1 and s2 observe color changes to p"); System.out.println("- s3 and s4 observe coordinate changes to p"); System.out.println("- s5 observes s2's and s4's display() method"); - - ColorObserver.aspectOf().addObserver(p, s1); + + ColorObserver.aspectOf().addObserver(p, s1); ColorObserver.aspectOf().addObserver(p, s2); - - CoordinateObserver.aspectOf().addObserver(p, s3); + + CoordinateObserver.aspectOf().addObserver(p, s3); CoordinateObserver.aspectOf().addObserver(p, s4); - + ScreenObserver.aspectOf().addObserver(s2, s5); ScreenObserver.aspectOf().addObserver(s4, s5); - System.out.println("Changing p's color:"); + System.out.println("Changing p's color:"); p.setColor(Color.red); - System.out.println("Changing p's x-coordinate:"); + System.out.println("Changing p's x-coordinate:"); + + p.setX(4); - p.setX(4); - - System.out.println("done."); + System.out.println("done."); } } diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/observer/aspectj/Point.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/observer/aspectj/Point.java index 0709e59e5..8240ddcf5 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/observer/aspectj/Point.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/observer/aspectj/Point.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.observer.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,11 +15,11 @@ package ca.ubc.cs.spl.aspectPatterns.examples.observer.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ import java.awt.Color; @@ -31,45 +31,45 @@ import java.awt.Color; * @author Gregor Kiczales * @version 1.11, 04/01/04 */ - + public class Point { /** * the point's x-coordinate */ - + private int x; - + /** * the point's y-coordinate */ - + private int y; - - /** + + /** * the point's current color */ - + private Color color; - + /** * Creates a new point object based on x and y coordinates and color. */ - + public Point(int x, int y, Color color) { this.x=x; this.y=y; this.color=color; } - + /** * Returns the point's current x-coordinate. * * @return the current x-coordinate */ - public int getX() { - return x; + public int getX() { + return x; } /** @@ -78,18 +78,18 @@ public class Point { * @return the current y-coordinate */ - public int getY() { - return y; + public int getY() { + return y; } - + /** * Sets the current x-coordinate. * * @param x the new x-coordinate */ - public void setX(int x) { - this.x = x; + public void setX(int x) { + this.x = x; } /** @@ -98,7 +98,7 @@ public class Point { * @param y the new y-coordinate */ - public void setY(int y) { + public void setY(int y) { this.y = y; } @@ -108,8 +108,8 @@ public class Point { * @return the current color */ - public Color getColor() { - return color; + public Color getColor() { + return color; } /** @@ -118,7 +118,7 @@ public class Point { * @param color the new color */ - public void setColor(Color color) { - this.color=color; + public void setColor(Color color) { + this.color=color; } } diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/observer/aspectj/Screen.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/observer/aspectj/Screen.java index 13c1bd9bc..5690ea3d9 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/observer/aspectj/Screen.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/observer/aspectj/Screen.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.observer.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,48 +15,48 @@ package ca.ubc.cs.spl.aspectPatterns.examples.observer.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ - -/** + +/** * Provides a means to output messages. Objects of this class act as - * output devices. + * output devices. * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.11, 04/01/04 */ - + public class Screen { - + /** * the individual name of this screen object */ private String name; - + /** * creates a new <code>Screen</code> object with the provided name. * - * @param name the name for the new <code>Screen</code> object + * @param name the name for the new <code>Screen</code> object */ - + public Screen(String s) { this.name = s; } /** - * Prints the name of the <code>Screen</code> object and the argument + * Prints the name of the <code>Screen</code> object and the argument * string to stdout. * * @param s the string to print */ - + public void display (String s) { System.out.println(name + ": " + s); } diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/observer/aspectj/ScreenObserver.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/observer/aspectj/ScreenObserver.java index 1ee361928..c4d64a795 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/observer/aspectj/ScreenObserver.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/observer/aspectj/ScreenObserver.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.observer.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,17 +15,17 @@ package ca.ubc.cs.spl.aspectPatterns.examples.observer.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ import ca.ubc.cs.spl.aspectPatterns.patternLibrary.ObserverProtocol; /** - * Concretizes the observing relationship for <code>Screen</code> (subject) + * Concretizes the observing relationship for <code>Screen</code> (subject) * and <code>Screen</code> (observer). Calls of <code>Screen.display(String) * </code> trigger updates. * @@ -40,38 +40,37 @@ public aspect ScreenObserver extends ObserverProtocol{ * Assings the <i>Subject</i> role to the <code>Screen</code> class. * Roles are modeled as (empty) interfaces. */ - + declare parents: Screen implements Subject; /** * Assings the <i>Observer</i> role to the <code>Screen</code> class. * Roles are modeled as (empty) interfaces. */ - + declare parents: Screen implements Observer; /** * Specifies the join points that represent a change to the * <i>Subject</i>. Captures calls to <code>Screen.display(String) - * </code>. - * + * </code>. + * * @param subject the <code>Point</code> acting as <i>Subject</i> */ - protected pointcut subjectChange(Subject subject): + protected pointcut subjectChange(Subject subject): call(void Screen.display(String)) && target(subject); /** * Defines how <i>Observer</i>s are to be updated when a change - * to a <i>Subject</i> occurs. + * to a <i>Subject</i> occurs. * * @param subject the <i>Subject</i> on which a change of interest occured - * @param observer the <i>bserver</i> to be notifed of the change + * @param observer the <i>bserver</i> to be notifed of the change */ - + protected void updateObserver(Subject subject, Observer observer) { ((Screen)observer).display("Screen updated " + "(screen subject displayed message)."); - } + } } - diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/observer/java/ChangeObserver.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/observer/java/ChangeObserver.java index 21a7d58ff..1768d1d34 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/observer/java/ChangeObserver.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/observer/java/ChangeObserver.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.observer.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,13 +15,13 @@ package ca.ubc.cs.spl.aspectPatterns.examples.observer.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ - + /** * Declares the method used to update <i>Observer<i>s. * @@ -29,15 +29,15 @@ package ca.ubc.cs.spl.aspectPatterns.examples.observer.java; * @author Gregor Kiczales * @version 1.11, 04/01/04 */ - + public interface ChangeObserver { - + /** * Updates an <i>Observer</i>. Uses the <i>push</i> strategy (i.e. the * subject triggering the update passes itself as an argument). * * @param s the <i>Subject</i> triggering the update */ - + public void refresh(ChangeSubject s); -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/observer/java/ChangeSubject.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/observer/java/ChangeSubject.java index 221cb53a0..e28bef501 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/observer/java/ChangeSubject.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/observer/java/ChangeSubject.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.observer.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,43 +15,43 @@ package ca.ubc.cs.spl.aspectPatterns.examples.observer.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ - + /** - * Declares methods to attach and detach <i>Observer<i>s to/from + * Declares methods to attach and detach <i>Observer<i>s to/from * <i>Subject</i>s, and the <code>notifyObservers()</code> method. * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.11, 04/01/04 */ - + public interface ChangeSubject { - + /** * Attaches an <i>Observer</i> to this <i>Subject</i>. - * + * * @param o the <i>Observer</i> to add */ - + public void addObserver(ChangeObserver o); /** * Detaches an <i>Observer</i> from this <i>Subject</i>. - * + * * @param o the <i>Observer</i> to remove */ - + public void removeObserver(ChangeObserver o); /** * Notifies all <i>Observer</i>s. */ - + public void notifyObservers(); -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/observer/java/Main.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/observer/java/Main.java index 8cfac7b4b..8e1df22dd 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/observer/java/Main.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/observer/java/Main.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.observer.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,20 +15,20 @@ package ca.ubc.cs.spl.aspectPatterns.examples.observer.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ -import java.awt.Color; +import java.awt.Color; /** * Implements the driver for the Observer design pattern example.<p> * * Intent: <i>Define a one-to-many dependency between objects so that when one - * object changes state, all its dependents are notified and updated + * object changes state, all its dependents are notified and updated * automatically</i><p> * * Participating objects are <code>Point</code> p and <code>Screen</code> @@ -39,18 +39,18 @@ import java.awt.Color; * </code> p. * <LI> <code>Screen</code> s3 and s4 observe coordinate changes of <code> * Point</code> p. - * <LI> <code>Screen</code> s5 observes the <code>display(String)</code> + * <LI> <code>Screen</code> s5 observes the <code>display(String)</code> * methods of <code>Screen</code> s2 and s4. * </UL> * * Every time an event of interest occurs, the observing <code>Screen</code> * prints an appropriate message to stdout. <p> * - * <p>This is the Java version.</i><p> + * <p>This is the Java version.</i><p> * * The example illustrates that it is hard to * cleanly modularize the different observing relationships. The following - * implementation issues have to be considered for the Java version: + * implementation issues have to be considered for the Java version: * <UL> * <LI> Observer and Subject can only be interfaces (as opposed to abstract * classes) if we do not want to restrict inhertance and thus code @@ -58,79 +58,79 @@ import java.awt.Color; * <LI> As interfaces, we cannot attach default implementations for methods * like <i>attach(Observer)</i>, <i>notify()</i>, etc. Note that * these two problems only apply because Java does not offer multiple - * inheritance. + * inheritance. * <LI> Some implementation constraints are made implicit and are thus not - * enforced: I.e., each <i>Subject</i> needs a field to store its + * enforced: I.e., each <i>Subject</i> needs a field to store its * <i>Observer</i>s - * <LI> The classes that become <i>Subject</i> and <i>Observer</i> in the - * pattern context need to be modified. In particular, <i>Subject</i>s - * need to store the mapping, implement the appropriate procedures. + * <LI> The classes that become <i>Subject</i> and <i>Observer</i> in the + * pattern context need to be modified. In particular, <i>Subject</i>s + * need to store the mapping, implement the appropriate procedures. * <i>Observer</i>s need to * implement <i>update()</i> * <LI> If a particular class takes part in more than one observing * relationship (as in this example), it is difficult to have both - * notify/update mechanisms go through the same interface and yet - * separate them cleanly. + * notify/update mechanisms go through the same interface and yet + * separate them cleanly. * </UL> * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.11, 04/01/04 */ - -public class Main { - + +public class Main { + /** - * Implements the driver for the Observer example. It creates five + * Implements the driver for the Observer example. It creates five * <code>Screen</code> objects and one <code>Point</code> object - * and sets the appropriate observing relationships (see above). - * After the setup, the color of the point is changed, then it's + * and sets the appropriate observing relationships (see above). + * After the setup, the color of the point is changed, then it's * x-coordinate. <p> * The following results should be expected: <OL> - * <LI> The color change should trigger s1 and s2 to each print an + * <LI> The color change should trigger s1 and s2 to each print an * appropriate message. * <LI> s2's message should trigger it's observer s5 to print * a message. * <LI> The coordinate change should trigger s3 and s4. * <LI> s4's message should trigger it's observer s5 again. - */ + */ public static void main(String argv[]) { - + Point p = new Point(5, 5, Color.blue); - + System.out.println("Creating Screen s1,s2,s3,s4,s5 and Point p"); - + Screen s1 = new Screen("s1"); Screen s2 = new Screen("s2"); - + Screen s3 = new Screen("s3"); Screen s4 = new Screen("s4"); - + Screen s5 = new Screen("s5"); - System.out.println("Creating observing relationships:"); - System.out.println("- s1 and s2 observe color changes to p"); + System.out.println("Creating observing relationships:"); + System.out.println("- s1 and s2 observe color changes to p"); System.out.println("- s3 and s4 observe coordinate changes to p"); System.out.println("- s5 observes s2's and s4's display() method"); - - p.addObserver(s1); + + p.addObserver(s1); p.addObserver(s2); - - p.addObserver(s3); + + p.addObserver(s3); p.addObserver(s4); - + s2.addObserver(s5); s4.addObserver(s5); - - System.out.println("Changing p's color:"); + + System.out.println("Changing p's color:"); p.setColor(Color.red); - System.out.println("Changing p's x-coordinate:"); + System.out.println("Changing p's x-coordinate:"); + + p.setX(4); - p.setX(4); - - System.out.println("done."); + System.out.println("done."); } } diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/observer/java/Point.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/observer/java/Point.java index 2a4322bb3..5413c80df 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/observer/java/Point.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/observer/java/Point.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.observer.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,14 +15,14 @@ package ca.ubc.cs.spl.aspectPatterns.examples.observer.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ -import java.awt.Color; +import java.awt.Color; import java.util.HashSet; import java.util.Iterator; @@ -33,52 +33,52 @@ import java.util.Iterator; * @author Gregor Kiczales * @version 1.11, 04/01/04 */ - -public class Point implements ChangeSubject { - + +public class Point implements ChangeSubject { + /** * stores the <i>Observer</i>s for this point (<i>Subject</i>) */ - + private HashSet observers; /** * the point's x-coordinate */ - + private int x; - + /** * the point's y-coordinate */ - + private int y; - - /** + + /** * the point's current color */ - + private Color color; - + /** * Creates a new point object based on x and y coordinates and color. */ - + public Point(int x, int y, Color color) { this.x = x; this.y = y; - this.color=color; + this.color=color; this.observers = new HashSet(); } - + /** * Returns the point's current x-coordinate. * * @return the current x-coordinate */ - public int getX() { - return x; + public int getX() { + return x; } /** @@ -87,18 +87,18 @@ public class Point implements ChangeSubject { * @return the current y-coordinate */ - public int getY() { - return y; + public int getY() { + return y; } - + /** * Sets the current x-coordinate. * * @param x the new x-coordinate */ - public void setX(int x) { - this.x = x; + public void setX(int x) { + this.x = x; notifyObservers(); } @@ -108,8 +108,8 @@ public class Point implements ChangeSubject { * @param y the new y-coordinate */ - public void setY(int y) { - this.y = y; + public void setY(int y) { + this.y = y; notifyObservers(); } @@ -127,36 +127,36 @@ public class Point implements ChangeSubject { * @param color the new color */ - public void setColor(Color color) { - this.color = color; + public void setColor(Color color) { + this.color = color; notifyObservers(); - } - - + } + + /** * Attaches an <i>Observer</i> to this <i>Subject</i>. - * + * * @param o the <i>Observer</i> to attach */ - + public void addObserver(ChangeObserver o) { this.observers.add(o); } - + /** * Detaches an <i>Observer</i> from this <i>Subject</i>. - * + * * @param o the <i>Observer</i> to detach */ - + public void removeObserver(ChangeObserver o) { this.observers.remove(o); } - + /** * Notifies all <i>Observer</i>s. */ - + public void notifyObservers() { for (Iterator e = observers.iterator() ; e.hasNext() ;) { ((ChangeObserver)e.next()).refresh(this); diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/observer/java/Screen.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/observer/java/Screen.java index 1860b477b..85442a0bb 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/observer/java/Screen.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/observer/java/Screen.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.observer.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,88 +15,88 @@ package ca.ubc.cs.spl.aspectPatterns.examples.observer.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ import java.util.HashSet; import java.util.Iterator; - -/** + +/** * Provides a means to output messages. Objects of this class act as - * output devices. + * output devices. * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.11, 04/01/04 */ - + public class Screen implements ChangeSubject, ChangeObserver { /** * stores the <i>Observer</i>s for this screen (<i>Subject</i>) */ - + private HashSet observers; - + /** * the individual name of this screen object */ private String name; - + /** * creates a new <code>Screen</code> object with the provided name. * - * @param name the name for the new <code>Screen</code> object + * @param name the name for the new <code>Screen</code> object */ - + public Screen(String s) { - this.name = s; + this.name = s; observers = new HashSet(); } /** - * Prints the name of the <code>Screen</code> object and the argument + * Prints the name of the <code>Screen</code> object and the argument * string to stdout. * * @param s the string to print */ - + public void display (String s) { System.out.println(name + ": " + s); notifyObservers(); - } + } /** * Attaches an <i>Observer</i> to this <i>Subject</i>. - * + * * @param o the <i>Observer</i> to attach */ public void addObserver(ChangeObserver o) { this.observers.add(o); } - + /** * Detaches an <i>Observer</i> from this <i>Subject</i>. - * + * * @param o the <i>Observer</i> to detach */ public void removeObserver(ChangeObserver o) { this.observers.remove(o); } - + /** * Notifies all <i>Observer</i>s. */ - + public void notifyObservers() { for (Iterator e = observers.iterator() ; e.hasNext() ;) { ((ChangeObserver)e.next()).refresh(this); @@ -106,18 +106,18 @@ public class Screen implements ChangeSubject, ChangeObserver { /** * Updates an <i>Observer</i>. Uses the <i>push</i> strategy (i.e. the * subject triggering the update passes itself as an argument). - * + * * This particular method prints a message showing what object caused - * the update + * the update * * @param s the <i>Subject</i> triggering the update */ - public void refresh(ChangeSubject s) { + public void refresh(ChangeSubject s) { String subjectTypeName = s.getClass().getName(); subjectTypeName = subjectTypeName.substring( subjectTypeName.lastIndexOf(".")+1, subjectTypeName.length()); display("update received from a "+subjectTypeName+" object"); } - + } diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/prototype/aspectj/Main.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/prototype/aspectj/Main.java index 81c4584a9..0b236da02 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/prototype/aspectj/Main.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/prototype/aspectj/Main.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.prototype.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,91 +15,91 @@ package ca.ubc.cs.spl.aspectPatterns.examples.prototype.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** - * Implements the driver for the Prototype design pattern example.<p> + * Implements the driver for the Prototype design pattern example.<p> * - * Intent: <i>Specify the kinds of objects to create using a prototypical + * Intent: <i>Specify the kinds of objects to create using a prototypical * instance, and create new objects by copying this prototype.</i><p> * - * Participatng objects are <code>StringPrototypeA</code> and + * Participatng objects are <code>StringPrototypeA</code> and * <code>StringPrototypeB</code> as <i>Prototype</i>s.<p> * * In this example, both StringPrototypeA and StringPrototypeB implement cloneable - * classes emulating limited String behavior. This driver creates an + * classes emulating limited String behavior. This driver creates an * object of each class and clones it. Both originals and clones are - * manipulated to show that they are different objects. + * manipulated to show that they are different objects. * - * <p><i>This is the AspectJ version.</i><p> + * <p><i>This is the AspectJ version.</i><p> * * Java's <code>Cloneable</code> interface is used internally. In this * version, a standard implementation for <code>createClone()</code> is * provided by the abstract pattern aspect. Each concrete pattern instance - * aspect can define special behavior by overwriting the appropriate + * aspect can define special behavior by overwriting the appropriate * methods. Consequently, the participants are freed of the pattern. * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/13/04 - * + * * @see StringPrototypeA * @see StringPrototypeB - */ + */ public class Main { /** - * Implements the driver for the Prototype design pattern example.<p> + * Implements the driver for the Prototype design pattern example.<p> * * In this example, both StringPrototypeA and StringPrototypeB implement cloneable - * classes emulating limited String behavior. This driver creates an + * classes emulating limited String behavior. This driver creates an * object of each class and clones it. Both originals and clones are - * manipulated to show that they are different objects. + * manipulated to show that they are different objects. * * @param args the command line parameters, unused. */ public static void main(String[] args) { - + System.out.println("Testing the Prototype design pattern implementation..."); - + StringPrototypeA originalA; StringPrototypeB originalB; StringPrototypeA copyA1, copyA2; StringPrototypeB copyB1; - + originalA = new StringPrototypeA(" This is Prototype 1"); - originalB = new StringPrototypeB(" This is Prototype 2"); - + originalB = new StringPrototypeB(" This is Prototype 2"); + System.out.println("These are the two prototypes:"); System.out.println(originalA); System.out.println(originalB); - + copyA1 = (StringPrototypeA) StringPrototypes.aspectOf().cloneObject(originalA); copyB1 = (StringPrototypeB) StringPrototypes.aspectOf().cloneObject(originalB); - + System.out.println("These are copies of the prototypes:"); System.out.println(copyA1); System.out.println(copyB1); - + System.out.println("Now prototype 1 is changed. Here are prototype 1 and its former copy:"); originalA.setText(" This is Prototype 1 (changed)"); System.out.println(originalA); System.out.println(copyA1); - + System.out.println("This is a clone of the changed prototype 1 and a changed copy of prototype 2:"); copyA2 = (StringPrototypeA) StringPrototypes.aspectOf().cloneObject(originalA); copyB1.setText(" This is a changed copy of prototype 2"); System.out.println(copyA2); System.out.println(copyB1); - - - System.out.println("... done."); + + + System.out.println("... done."); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/prototype/aspectj/StringPrototypeA.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/prototype/aspectj/StringPrototypeA.java index a0ac669f1..9aa1acf85 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/prototype/aspectj/StringPrototypeA.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/prototype/aspectj/StringPrototypeA.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.prototype.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -17,7 +17,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.prototype.aspectj; * The Original Code is ca.ubc.cs.spl.aspectPatterns. * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * * Contributor(s): */ @@ -71,4 +71,3 @@ public class StringPrototypeA implements Cloneable { return "MyString: "+ text; } } -
\ No newline at end of file diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/prototype/aspectj/StringPrototypeB.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/prototype/aspectj/StringPrototypeB.java index 600d0b901..374dcbe3e 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/prototype/aspectj/StringPrototypeB.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/prototype/aspectj/StringPrototypeB.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.prototype.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -17,7 +17,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.prototype.aspectj; * The Original Code is ca.ubc.cs.spl.aspectPatterns. * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * * Contributor(s): */ @@ -70,4 +70,4 @@ public class StringPrototypeB implements Cloneable { public String toString() { return "AnotherString: " + text; } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/prototype/aspectj/StringPrototypes.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/prototype/aspectj/StringPrototypes.java index 00bbe30f4..9de544be2 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/prototype/aspectj/StringPrototypes.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/prototype/aspectj/StringPrototypes.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.prototype.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,29 +15,29 @@ package ca.ubc.cs.spl.aspectPatterns.examples.prototype.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ import ca.ubc.cs.spl.aspectPatterns.patternLibrary.PrototypeProtocol; /** - * Concretizes the abstract Prototype design pattern. + * Concretizes the abstract Prototype design pattern. * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/13/04 - */ - -public aspect StringPrototypes extends PrototypeProtocol { + */ + +public aspect StringPrototypes extends PrototypeProtocol { /** * Assigns the <i>Prototype</i> role to </code>StringPrototypeA</code> */ - + declare parents: StringPrototypeA implements Prototype; /** @@ -49,7 +49,7 @@ public aspect StringPrototypes extends PrototypeProtocol { /** * Provides an alternative method for cases when the default * <code>clone()</code> method fails: Clones objects "by hand". - * + * * @param object the prototype object to clone * @return a copy of the object */ @@ -60,6 +60,6 @@ public aspect StringPrototypes extends PrototypeProtocol { } else { return null; } - } + } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/prototype/java/Main.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/prototype/java/Main.java index 3552ac567..7f60e0c48 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/prototype/java/Main.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/prototype/java/Main.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.prototype.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,94 +15,94 @@ package ca.ubc.cs.spl.aspectPatterns.examples.prototype.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** - * Implements the driver for the Prototype design pattern example.<p> + * Implements the driver for the Prototype design pattern example.<p> * - * Intent: <i>Specify the kinds of objects to create using a prototypical + * Intent: <i>Specify the kinds of objects to create using a prototypical * instance, and create new objects by copying this prototype.</i><p> * - * Participating objects are <code>StringPrototypeA</code> and + * Participating objects are <code>StringPrototypeA</code> and * <code>StringPrototypeB</code> as <i>Prototype</i>s.<p> * - * In this example, both StringPrototypeA and StringPrototypeB - * implement cloneable classes emulating limited String behavior. - * This driver creates an object of each class and clones it. - * Both originals and clones are manipulated to show that they are - * different objects. + * In this example, both StringPrototypeA and StringPrototypeB + * implement cloneable classes emulating limited String behavior. + * This driver creates an object of each class and clones it. + * Both originals and clones are manipulated to show that they are + * different objects. * - * <p><i>This is the Java version.</i><p> + * <p><i>This is the Java version.</i><p> * * Java's <code>Cloneable</code> interface is used. * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/13/04 - * + * * @see StringPrototypeA * @see StringPrototypeB - */ - + */ + public class Main { /** - * Implements the driver for the Prototype design pattern example.<p> + * Implements the driver for the Prototype design pattern example.<p> * * In this example, both StringPrototypeA and StringPrototypeB implement cloneable - * classes emulating limited String behavior. This driver creates an + * classes emulating limited String behavior. This driver creates an * object of each class and clones it. Both originals and clones are - * manipulated to show that they are different objects. + * manipulated to show that they are different objects. * * @param args the command line parameters, unused. - */ + */ public static void main(String[] args) { - + try { - + System.out.println("Testing the Prototype design pattern implementation..."); - + StringPrototypeA originalA; StringPrototypeB originalB; StringPrototypeA copyA1, copyA2; StringPrototypeB copyB1; - + originalA = new StringPrototypeA(" This is Prototype 1"); - originalB = new StringPrototypeB(" This is Prototype 2"); - + originalB = new StringPrototypeB(" This is Prototype 2"); + System.out.println("These are the two prototypes:"); System.out.println(originalA); System.out.println(originalB); - + copyA1 = (StringPrototypeA) originalA.clone(); copyB1 = (StringPrototypeB) originalB.clone(); - + System.out.println("These are copies of the prototypes:"); System.out.println(copyA1); System.out.println(copyB1); - + System.out.println("Now prototype 1 is changed. Here are prototype 1 and its former copy:"); originalA.setText(" This is Prototype 1 (changed)"); System.out.println(originalA); System.out.println(copyA1); - + System.out.println("This is a clone of the changed prototype 1 and a changed copy of prototype 2:"); copyA2 = (StringPrototypeA) originalA.clone(); copyB1.setText(" This is a changed copy of prototype 2"); System.out.println(copyA2); System.out.println(copyB1); - - - System.out.println("... done."); - + + + System.out.println("... done."); + } catch (CloneNotSupportedException ex) { System.err.println("Can't clone prototype objects"+ex); } } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/prototype/java/StringPrototypeA.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/prototype/java/StringPrototypeA.java index 6019d416d..b2373c399 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/prototype/java/StringPrototypeA.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/prototype/java/StringPrototypeA.java @@ -1,4 +1,4 @@ -package ca.ubc.cs.spl.aspectPatterns.examples.prototype.java; +package ca.ubc.cs.spl.aspectPatterns.examples.prototype.java; /* -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- * @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.prototype.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,11 +15,11 @@ package ca.ubc.cs.spl.aspectPatterns.examples.prototype.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** @@ -29,18 +29,18 @@ package ca.ubc.cs.spl.aspectPatterns.examples.prototype.java; * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/13/04 - * + * * @see StringPrototypeB - */ + */ public class StringPrototypeA implements Cloneable { /** * the string that this object encapsulates */ - + protected String text; - + /** * Creates a new StringPrototypeA object with the given string * @@ -50,34 +50,33 @@ public class StringPrototypeA implements Cloneable { public StringPrototypeA(String init) { text = init; } - + /** * Changes the string this object encapsulates * * @param newText the new text for this object. - */ - + */ + public void setText(String newText) { text = newText; } - + /** * Returns a string representation of this object. * * @returns a string representation of this object. */ - + public String toString() { return "StringPrototypeA: "+ text; - } - - /** + } + + /** * Returns a copy of this object. Does only work this way if the * superclass implements <code>clone()</code>. */ - + public Object clone() throws CloneNotSupportedException { return super.clone(); } } -
\ No newline at end of file diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/prototype/java/StringPrototypeB.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/prototype/java/StringPrototypeB.java index 2c6f23954..ce0033010 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/prototype/java/StringPrototypeB.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/prototype/java/StringPrototypeB.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.prototype.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,11 +15,11 @@ package ca.ubc.cs.spl.aspectPatterns.examples.prototype.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** @@ -29,18 +29,18 @@ package ca.ubc.cs.spl.aspectPatterns.examples.prototype.java; * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/13/04 - * + * * @see StringPrototypeA - */ + */ public class StringPrototypeB implements Cloneable { - + /** * the string that this object encapsulates */ - + protected String text; - + /** * Creates a new StringPrototypeA object with the given string * @@ -50,33 +50,33 @@ public class StringPrototypeB implements Cloneable { public StringPrototypeB(String init) { text = init; } - + /** * Changes the string this object encapsulates * * @param newText the new text for this object. - */ - + */ + public void setText(String newText) { text = newText; } - + /** * Returns a string representation of this object. * * @return a string representation of this object. */ - + public String toString() { return "StringPrototypeB: " + text; - } - - /** + } + + /** * Returns a copy of this object. Does only work this way if the * superclass implements <code>clone()</code>. */ - + public Object clone() throws CloneNotSupportedException { return super.clone(); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/proxy/aspectj/AlternateOutputImplementation.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/proxy/aspectj/AlternateOutputImplementation.java index 89ecd27d8..87605bb67 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/proxy/aspectj/AlternateOutputImplementation.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/proxy/aspectj/AlternateOutputImplementation.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.proxy.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,33 +15,33 @@ package ca.ubc.cs.spl.aspectPatterns.examples.proxy.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** - * This class will serve as a Delegate for OutputImplementation. Note that no + * This class will serve as a Delegate for OutputImplementation. Note that no * interfaces need to be implemented. This is not a <i>Subject</i> and does in * fact play no role in the pattern. * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/17/04 - */ + */ -public class AlternateOutputImplementation { +public class AlternateOutputImplementation { /** - * Prints the argument string to + * Prints the argument string to * <code>System.out</code> * * @param s the string to print */ - + public void alternateRequest(String s) { System.out.println("[AlternateSubject.safeRequest()]: "+s); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/proxy/aspectj/Main.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/proxy/aspectj/Main.java index 3081d8b01..f5b3697b8 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/proxy/aspectj/Main.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/proxy/aspectj/Main.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.proxy.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,42 +15,42 @@ package ca.ubc.cs.spl.aspectPatterns.examples.proxy.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** - * Implements the driver for the Proxy design pattern example.<p> + * Implements the driver for the Proxy design pattern example.<p> * * Intent: <i>Provide a surrogate or placeholder for another object to control * access to it.</i><p> * - * Participating objects are <code>OutputImplementation</code>s and - * <code>AlternateOutputImplementation</code>. - * + * Participating objects are <code>OutputImplementation</code>s and + * <code>AlternateOutputImplementation</code>. + * * The former acts as a <i>RealSubject</i>. * * Experimental setup: * <code>Main</code> issues three different kinds of requests to - * the <i>RealSubject</i> (<code>OutputImplementation</code>) twice. + * the <i>RealSubject</i> (<code>OutputImplementation</code>) twice. * <UL> - * <LI> SAFE requests are delegated to a different object + * <LI> SAFE requests are delegated to a different object * (delegation proxy) * <LI> REGULAR request are counted * <LI> UNSAFE requests are blocked entirely. * </UL> * - * <p><i>This is the AspectJ version.</i><p> - * + * <p><i>This is the AspectJ version.</i><p> + * * Each concrete aspect defines exactly what requests it is interested * in. For those requests, it declares how to deal with the request. - * + * * The proxy implementation is localized. Even clients need not set - * or remove proxies. - * + * or remove proxies. + * * Please note that the AspectJ version includes an additional proxy * that delegates safe request to a different object. An OO implementation * would be similar to the other OO proxies. @@ -61,39 +61,39 @@ package ca.ubc.cs.spl.aspectPatterns.examples.proxy.aspectj; */ public class Main { - - /** + + /** * Creates a new Main object and runs the test suite. - */ - - public Main() { + */ + + public Main() { /** * The <i>RealSubject</i> that the client sends all requests to */ - - OutputImplementation real = new OutputImplementation(); - System.out.println("\n===> Issuing SAFE request..."); + OutputImplementation real = new OutputImplementation(); + + System.out.println("\n===> Issuing SAFE request..."); real.safeRequest ("Safe Reqeust"); - System.out.println("\n===> Issuing REGULAR request..."); + System.out.println("\n===> Issuing REGULAR request..."); real.regularRequest("Normal Request"); - System.out.println("\n===> Issuing UNSAFE request..."); + System.out.println("\n===> Issuing UNSAFE request..."); real.unsafeRequest ("Unsafe Request"); - System.out.println("\n===> Issuing SAFE request..."); + System.out.println("\n===> Issuing SAFE request..."); real.safeRequest ("Safe Reqeust"); - System.out.println("\n===> Issuing REGULAR request..."); + System.out.println("\n===> Issuing REGULAR request..."); real.regularRequest("Normal Request"); - System.out.println("\n===> Issuing UNSAFE request..."); + System.out.println("\n===> Issuing UNSAFE request..."); real.unsafeRequest ("Unsafe Request"); - } + } - /** + /** * Implements the driver for the proxy design pattern example. */ - public static void main (String[] args) { + public static void main (String[] args) { Main main = new Main(); } } diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/proxy/aspectj/OutputImplementation.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/proxy/aspectj/OutputImplementation.java index 2023025d0..f067e8afa 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/proxy/aspectj/OutputImplementation.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/proxy/aspectj/OutputImplementation.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.proxy.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,32 +15,32 @@ package ca.ubc.cs.spl.aspectPatterns.examples.proxy.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** - * Represents a <i>RealSubject</i> according to GoF. - * Note that it does not have to implement any interface in the AspectJ + * Represents a <i>RealSubject</i> according to GoF. + * Note that it does not have to implement any interface in the AspectJ * version. * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/17/04 - */ + */ public class OutputImplementation { /** - * A type of <i>request(..)</i>. Prints the argument string to + * A type of <i>request(..)</i>. Prints the argument string to * <code>System.out</code> * * @param s the string to print */ - + public void safeRequest(String s) { System.out.println("[OutputImplementation.safeRequest()]: "+s); } @@ -55,7 +55,7 @@ public class OutputImplementation { public void regularRequest(String s) { System.out.println("[OutputImplementation.regularRequest()]: "+s); } - + /** * A type of <i>request(..)</i>. * @@ -65,4 +65,4 @@ public class OutputImplementation { public void unsafeRequest(String s) { System.out.println("[OutputImplementation.unsafeRequest()]: "+s); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/proxy/aspectj/RequestBlocking.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/proxy/aspectj/RequestBlocking.java index d157d44eb..e17aa2ef8 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/proxy/aspectj/RequestBlocking.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/proxy/aspectj/RequestBlocking.java @@ -1,4 +1,4 @@ -package ca.ubc.cs.spl.aspectPatterns.examples.proxy.aspectj; +package ca.ubc.cs.spl.aspectPatterns.examples.proxy.aspectj; /* -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- * @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.proxy.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,32 +15,32 @@ package ca.ubc.cs.spl.aspectPatterns.examples.proxy.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ import ca.ubc.cs.spl.aspectPatterns.patternLibrary.ProxyProtocol; import org.aspectj.lang.JoinPoint; /** - * Implements a concrete Proxy pattern instance. Here, all unsafe requests - * from <code>Main</code> <code>OutputImplementation</code> - * are blocked.<p> + * Implements a concrete Proxy pattern instance. Here, all unsafe requests + * from <code>Main</code> <code>OutputImplementation</code> + * are blocked.<p> * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/17/04 - */ + */ + +public aspect RequestBlocking extends ProxyProtocol { -public aspect RequestBlocking extends ProxyProtocol { - - /** + /** * Assigns the <i>Subject</i> role to <code>OutputImplementation</code>. */ - + declare parents: OutputImplementation implements Subject; /** @@ -49,7 +49,7 @@ public aspect RequestBlocking extends ProxyProtocol { * OutputImplementation.unsafeRequest(..)</code>. */ - protected pointcut requests(): + protected pointcut requests(): call(* OutputImplementation.unsafeRequest(..)); /** @@ -58,15 +58,15 @@ public aspect RequestBlocking extends ProxyProtocol { * denied. * * @param caller the object responsible for the protected access - * @param subject the subject receiving the call + * @param subject the subject receiving the call * @param joinPoint the joinpoint associated with the protected access * * @return true if the access is from a Main object, false otherwise */ - protected boolean isProxyProtected(Object caller, - Subject subject, - JoinPoint joinPoint) { + protected boolean isProxyProtected(Object caller, + Subject subject, + JoinPoint joinPoint) { if (joinPoint.getThis() instanceof Main) { System.out.println("[RequestBlocking] intercepting unsafe " + "requests from Main"); diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/proxy/aspectj/RequestCounting.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/proxy/aspectj/RequestCounting.java index da91e003a..aa4c236b8 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/proxy/aspectj/RequestCounting.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/proxy/aspectj/RequestCounting.java @@ -1,4 +1,4 @@ -package ca.ubc.cs.spl.aspectPatterns.examples.proxy.aspectj; +package ca.ubc.cs.spl.aspectPatterns.examples.proxy.aspectj; /* -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- * @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.proxy.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,48 +15,48 @@ package ca.ubc.cs.spl.aspectPatterns.examples.proxy.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ import ca.ubc.cs.spl.aspectPatterns.patternLibrary.ProxyProtocol; import org.aspectj.lang.JoinPoint; /** - * Implements a concrete proxy pattern instance. Here, all method calls from - * <code>Main</code> to <code>OutputImplementation.print(String)</code> are blocked.<p> + * Implements a concrete proxy pattern instance. Here, all method calls from + * <code>Main</code> to <code>OutputImplementation.print(String)</code> are blocked.<p> * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/17/04 - */ + */ + +public aspect RequestCounting extends ProxyProtocol { -public aspect RequestCounting extends ProxyProtocol { - /** * An internal counter for the number of calls to <code> * print(String)</code>. */ - + private int regularRequests = 0; - - /** + + /** * Assigns the <i>OutputSubject</i> role to <code>OutputImplementation</code>. */ - + declare parents: OutputImplementation implements Subject; /** - * Captures all accesses to the subject that should be protected by + * Captures all accesses to the subject that should be protected by * this pattern instance. Here: All calls to <code> * OutputImplementation.print(..)</code>. */ - protected pointcut requests(): + protected pointcut requests(): call(* OutputImplementation.regularRequest(..)); /** @@ -64,20 +64,20 @@ public aspect RequestCounting extends ProxyProtocol { * that come from <code>Main</code> objects are denied. * * @param caller the object responsible for the protected access - * @param subject the subject receiving the call + * @param subject the subject receiving the call * @param joinPoint the joinpoint associated with the protected access * * @return true if the access is from a Main object, false otherwise */ - protected boolean isProxyProtected(Object caller, - Subject subject, - JoinPoint joinPoint) { + protected boolean isProxyProtected(Object caller, + Subject subject, + JoinPoint joinPoint) { if (joinPoint.getThis() instanceof Main) { regularRequests++; System.out.println("[RequestCounter:] That was regular request nr. " + regularRequests); - } - return false; + } + return false; } } diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/proxy/aspectj/RequestDelegation.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/proxy/aspectj/RequestDelegation.java index 053c5564a..6f8cbf1b3 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/proxy/aspectj/RequestDelegation.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/proxy/aspectj/RequestDelegation.java @@ -1,4 +1,4 @@ -package ca.ubc.cs.spl.aspectPatterns.examples.proxy.aspectj; +package ca.ubc.cs.spl.aspectPatterns.examples.proxy.aspectj; /* -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- * @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.proxy.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,84 +15,84 @@ package ca.ubc.cs.spl.aspectPatterns.examples.proxy.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ import ca.ubc.cs.spl.aspectPatterns.patternLibrary.ProxyProtocol; import org.aspectj.lang.JoinPoint; /** - * Implements a concrete proxy pattern instance. Here, all method calls from - * <code>Main</code> to <code>OutputImplementation.print(String)</code> are blocked.<p> + * Implements a concrete proxy pattern instance. Here, all method calls from + * <code>Main</code> to <code>OutputImplementation.print(String)</code> are blocked.<p> * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/17/04 - */ - -public aspect RequestDelegation extends ProxyProtocol { - - /** + */ + +public aspect RequestDelegation extends ProxyProtocol { + + /** * Assigns the <i>Subject</i> role to <code>OutputImplementation * </code>. */ - + declare parents: OutputImplementation implements Subject; - - private AlternateOutputImplementation alternateSubject = + + private AlternateOutputImplementation alternateSubject = new AlternateOutputImplementation(); /** - * Captures all accesses to the subject that should be protected by + * Captures all accesses to the subject that should be protected by * this pattern instance. Here: All calls to <code> * OutputImplementation.safeRequest(..)</code>. */ - protected pointcut requests(): + protected pointcut requests(): call(* OutputImplementation.safeRequest(..)); /** * Checks whether the request should be handled by the Proxy or not. - * Here: All accesses matched by the <code>protectedAccesses()</code> + * Here: All accesses matched by the <code>protectedAccesses()</code> * joinpoint. * * @param caller the object responsible for the protected access - * @param subject the subject receiving the call + * @param subject the subject receiving the call * @param joinPoint the joinpoint associated with the protected access * * @return true if the access is covered by the proxy, false otherwise */ - protected boolean isProxyProtected(Object caller, - Subject subject, + protected boolean isProxyProtected(Object caller, + Subject subject, JoinPoint joinPoint) { System.out.println("[RequestDelegation] delegating a safe request " + - "to a different type of object"); + "to a different type of object"); return true; } /** - * For delegation: Provides an alternative return value if access - * is proxy protected. A default implementation is supplied so that + * For delegation: Provides an alternative return value if access + * is proxy protected. A default implementation is supplied so that * concrete subaspects are not forced to implement the method. - * Here, it also calls an appropriate method on a delegate + * Here, it also calls an appropriate method on a delegate * (to illustrate how delegation would work). * * @param caller the object responsible for the proxy protected access - * @param subject the subject receiving the call - * @param joinPoint the joinpoint associated with the proxy protected + * @param subject the subject receiving the call + * @param joinPoint the joinpoint associated with the proxy protected * access * * @return an alternative return value */ - protected Object handleProxyProtection(Object caller, - Subject subject, + protected Object handleProxyProtection(Object caller, + Subject subject, JoinPoint joinPoint) { Object[] args = joinPoint.getArgs(); if (args != null) { diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/proxy/java/Main.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/proxy/java/Main.java index e4e91283b..21e0a3294 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/proxy/java/Main.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/proxy/java/Main.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.proxy.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,39 +15,39 @@ package ca.ubc.cs.spl.aspectPatterns.examples.proxy.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** - * Implements the driver for the RequestCounter design pattern example.<p> + * Implements the driver for the RequestCounter design pattern example.<p> * * Intent: <i>Provide a surrogate or placeholder for another object to control * access to it.</i><p> * - * Participating objects are <code>OutputImplementation</code> and - * <code>RequestCounter</code> as <i>RealSubject</i> and <i>Proxy</i>, + * Participating objects are <code>OutputImplementation</code> and + * <code>RequestCounter</code> as <i>RealSubject</i> and <i>Proxy</i>, * respectively. - * + * * Both implement the <code>OutputSubject</code> interface, which represents * the <i>Subject</i> interface. * * Experimental setup: * <code>Main</code> issues three different kinds of requests to - * the <i>RealSubject</i> (<code>OutputImplementation</code>) twice. + * the <i>RealSubject</i> (<code>OutputImplementation</code>) twice. * <UL> * <LI> SAFE requests are not affected * <LI> REGULAR request are counted * <LI> UNSAFE requests are blocked entirely. * </UL> * - * <p><i>This is the Java version.</i><p> + * <p><i>This is the Java version.</i><p> * - * <i>Proxy</i>s needs to implement all methods of - * <code>OutputSubject</code>, even those it is not interested in. + * <i>Proxy</i>s needs to implement all methods of + * <code>OutputSubject</code>, even those it is not interested in. * They need to be aware of their role in the pattern. * * @author Jan Hannemann @@ -55,29 +55,29 @@ package ca.ubc.cs.spl.aspectPatterns.examples.proxy.java; * @version 1.1, 02/17/04 */ -public class Main { +public class Main { /** * Implements the driver for the proxy design pattern. <p> */ - public static void main (String[] args) { + public static void main (String[] args) { OutputSubject real = new OutputImplementation(); OutputSubject countingProxy = new RequestCounter(real); OutputSubject blockingProxy = new RequestBlocker(countingProxy); - - System.out.println("\n===> Issuing SAFE request..."); + + System.out.println("\n===> Issuing SAFE request..."); blockingProxy.safeRequest ("Safe Reqeust"); - System.out.println("\n===> Issuing REGULAR request..."); + System.out.println("\n===> Issuing REGULAR request..."); blockingProxy.regularRequest("Normal Request"); - System.out.println("\n===> Issuing UNSAFE request..."); + System.out.println("\n===> Issuing UNSAFE request..."); blockingProxy.unsafeRequest ("Unsafe Request"); - System.out.println("\n===> Issuing SAFE request..."); + System.out.println("\n===> Issuing SAFE request..."); blockingProxy.safeRequest ("Safe Reqeust"); - System.out.println("\n===> Issuing REGULAR request..."); + System.out.println("\n===> Issuing REGULAR request..."); blockingProxy.regularRequest("Normal Request"); - System.out.println("\n===> Issuing UNSAFE request..."); + System.out.println("\n===> Issuing UNSAFE request..."); blockingProxy.unsafeRequest ("Unsafe Request"); } } diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/proxy/java/OutputImplementation.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/proxy/java/OutputImplementation.java index dab1bedd1..c161a7223 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/proxy/java/OutputImplementation.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/proxy/java/OutputImplementation.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.proxy.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,11 +15,11 @@ package ca.ubc.cs.spl.aspectPatterns.examples.proxy.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** @@ -29,17 +29,17 @@ package ca.ubc.cs.spl.aspectPatterns.examples.proxy.java; * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/17/04 - */ + */ public class OutputImplementation implements OutputSubject { /** - * A type of <i>request(..)</i>. Prints the argument string to + * A type of <i>request(..)</i>. Prints the argument string to * <code>System.out</code> * * @param s the string to print */ - + public void safeRequest(String s) { System.out.println("[RealSubject.safeRequest()]: "+s); } @@ -54,7 +54,7 @@ public class OutputImplementation implements OutputSubject { public void regularRequest(String s) { System.out.println("[RealSubject.regularRequest()]: "+s); } - + /** * A type of <i>request(..)</i>. * @@ -64,4 +64,4 @@ public class OutputImplementation implements OutputSubject { public void unsafeRequest(String s) { System.out.println("[RealSubject.unsafeRequest()]: "+s); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/proxy/java/OutputSubject.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/proxy/java/OutputSubject.java index a6f9cf362..b1585912a 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/proxy/java/OutputSubject.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/proxy/java/OutputSubject.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.proxy.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,30 +15,30 @@ package ca.ubc.cs.spl.aspectPatterns.examples.proxy.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** - * Defines the <i>Subject</i> interface that is implemented by both + * Defines the <i>Subject</i> interface that is implemented by both * <code>RequestCounter</code> and <code>OutputImplementation</code>. * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/17/04 - */ - -public interface OutputSubject { - + */ + +public interface OutputSubject { + /** * A type of <i>request(..)</i>. * * @param s the string to print */ - + public void safeRequest(String s); /** @@ -48,7 +48,7 @@ public interface OutputSubject { */ public void regularRequest(String s); - + /** * A type of <i>request(..)</i>. * @@ -57,4 +57,4 @@ public interface OutputSubject { public void unsafeRequest(String s); -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/proxy/java/RequestBlocker.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/proxy/java/RequestBlocker.java index be562498f..0b50b3bd9 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/proxy/java/RequestBlocker.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/proxy/java/RequestBlocker.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.proxy.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,11 +15,11 @@ package ca.ubc.cs.spl.aspectPatterns.examples.proxy.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** @@ -29,18 +29,18 @@ package ca.ubc.cs.spl.aspectPatterns.examples.proxy.java; * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/17/04 - */ + */ + +public class RequestBlocker implements OutputSubject { -public class RequestBlocker implements OutputSubject { - /** * a reference to the <i>Subject</i> (used to forward requests to) */ - - private OutputSubject realSubject; - + + private OutputSubject realSubject; + /** - * Creates a new <code>RequestBlocker</code> with the given + * Creates a new <code>RequestBlocker</code> with the given * <i>Subject</i>. * * @param subject The <i>Subject</i> to forward method calls to @@ -49,35 +49,35 @@ public class RequestBlocker implements OutputSubject { public RequestBlocker(OutputSubject subject) { this.realSubject = subject; } - + /** * Forwards the request to its subject. We are not interested in - * this kind of request, but must implement the method (and the - * request forwarding) anyway since the method is part of the + * this kind of request, but must implement the method (and the + * request forwarding) anyway since the method is part of the * <code>RequestBlocker</code> interface. * * @param s the string to print */ - + public void safeRequest(String s) { - realSubject.safeRequest(s); + realSubject.safeRequest(s); System.out.println("[RequestBlocker:] Not interested in safe requests," + - " but must implement anyway"); + " but must implement anyway"); } - + /** * Forwards the request to its subject. We are not interested in - * this kind of request, but must implement the method (and the - * request forwarding) anyway since the method is part of the + * this kind of request, but must implement the method (and the + * request forwarding) anyway since the method is part of the * <code>RequestBlocker</code> interface. * * @param s the string to print */ public void regularRequest(String s) { - realSubject.regularRequest(s); + realSubject.regularRequest(s); System.out.println("[RequestBlocker:] Not interested in regular requests," + - " but must implement anyway"); + " but must implement anyway"); } /** @@ -87,8 +87,8 @@ public class RequestBlocker implements OutputSubject { */ public void unsafeRequest(String s) { - realSubject.unsafeRequest(s); - System.out.println("[RequestBlocker:] " + s + " blocked."); + realSubject.unsafeRequest(s); + System.out.println("[RequestBlocker:] " + s + " blocked."); } - -}
\ No newline at end of file + +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/proxy/java/RequestCounter.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/proxy/java/RequestCounter.java index ba55bc0ea..ebbe2fff4 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/proxy/java/RequestCounter.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/proxy/java/RequestCounter.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.proxy.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,11 +15,11 @@ package ca.ubc.cs.spl.aspectPatterns.examples.proxy.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** @@ -29,25 +29,25 @@ package ca.ubc.cs.spl.aspectPatterns.examples.proxy.java; * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/17/04 - */ + */ + +public class RequestCounter implements OutputSubject { -public class RequestCounter implements OutputSubject { - /** * a reference to the <i>Subject</i> (used to forward requests to) */ - - private OutputSubject realSubject; - + + private OutputSubject realSubject; + /** * An internal counter for the number of calls to <code> * print(String)</code>. */ - + private int regularRequests = 0; - + /** - * Creates a new <code>RequestCounter</code> with the given + * Creates a new <code>RequestCounter</code> with the given * <i>Subject</i>. * * @param subject The <i>Subject</i> to forward method calls to @@ -56,49 +56,49 @@ public class RequestCounter implements OutputSubject { public RequestCounter(OutputSubject subject) { this.realSubject = subject; } - + /** * Forwards the request to its subject. We are not interested in - * this kind of request, but must implement the method (and the - * request forwarding) anyway since the method is part of the + * this kind of request, but must implement the method (and the + * request forwarding) anyway since the method is part of the * <code>RequestBlocker</code> interface. * * @param s the string to print */ - + public void safeRequest(String s) { - realSubject.safeRequest(s); + realSubject.safeRequest(s); System.out.println("[RequestCounter:] Not interested in safe " + - "requests, but must implement anyway"); + "requests, but must implement anyway"); } - + /** - * Forwards the request to its subject and prints - * out how many times the <i>request()</i> has been called so far. + * Forwards the request to its subject and prints + * out how many times the <i>request()</i> has been called so far. * * @param s the string to print */ public void regularRequest(String s) { regularRequests++; - realSubject.regularRequest(s); + realSubject.regularRequest(s); System.out.println("[RequestCounter:] That was regular request nr. " + - regularRequests); + regularRequests); } /** * Forwards the request to its subject. We are not interested in - * this kind of request, but must implement the method (and the - * request forwarding) anyway since the method is part of the + * this kind of request, but must implement the method (and the + * request forwarding) anyway since the method is part of the * <code>RequestBlocker</code> interface. * * @param s the string to print */ public void unsafeRequest(String s) { - realSubject.unsafeRequest(s); + realSubject.unsafeRequest(s); System.out.println("[RequestCounter:] Not interested in unsafe requests," + - " but must implement anyway"); + " but must implement anyway"); } - -}
\ No newline at end of file + +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/singleton/aspectj/Main.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/singleton/aspectj/Main.java index 18c258e66..194f893b4 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/singleton/aspectj/Main.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/singleton/aspectj/Main.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.singleton.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,26 +15,26 @@ package ca.ubc.cs.spl.aspectPatterns.examples.singleton.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** - * Implements the driver for the Singleton design pattern example.<p> + * Implements the driver for the Singleton design pattern example.<p> * * Intent: <i>Ensure that a class has only one instance and provide a global * point of access to it.</i><p> * - * Participating objects are <code>Printer</code> printer1, printer2, printer3 and + * Participating objects are <code>Printer</code> printer1, printer2, printer3 and * <code>PrinterSubclass</code> ps1, ps2, ps3.<p> * * Three different objects of both Printer and PrinterSubclass are - * instantiated and compared. + * instantiated and compared. * - * This Implementation treats the singleton property as a non-inherited + * This Implementation treats the singleton property as a non-inherited * property. This meant that <i>Singleton</i> classes can still be subclassed * and these subclasses can access the <i>Singleton</i> constructor normally. * @@ -43,7 +43,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.singleton.aspectj; * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/18/04 - * + * * @see Printer * @see PrinterSubclass */ @@ -55,12 +55,12 @@ public class Main { */ private static Printer printer1, printer2, printer3; - + // Experimental setup: Main creates three Printer objects. // The Printer implementation gives each object a unique ID // which is printed when print() is called. If the Singleton // implementation works, all three objects should be the same. - // + // // Implementation: AOP5 - One (concrete) aspect defines the behavior // of the pattern, creating a generic getInstance() method that // is attached to the Singleton interface. Another aspect assigns @@ -72,69 +72,69 @@ public class Main { // // Clients don't have to type-cast, they just use new(..) // - // Subclasses are automatically Singletons, too, unless + // Subclasses are automatically Singletons, too, unless // explicitly declared as non-singletons - - + + /** - * Implements the first test case. Creates 3 references to the + * Implements the first test case. Creates 3 references to the * <i>Singleton</i> by using the regular constructor. That should * create three identical objects. - */ - + */ + private static void test1() { System.out.println("\nTest 1: All three printers should have the " + "same ID"); - + printer1 = new Printer(); printer2 = new Printer(); - printer3 = new Printer(); - + printer3 = new Printer(); + printer1.print(); printer2.print(); - printer3.print(); + printer3.print(); } - + /** * Implements the second test case. Tests if the 3 objects from test 1 are * in fact identical - */ + */ private static void test2() { System.out.println("\nTest 2: All three objects should be identical"); - + System.out.print("\tThey are "); if ((printer1 == printer2) && (printer1 == printer3)) { System.out.println("identical"); } else { - System.out.println("not identical"); + System.out.println("not identical"); } } - + /** * Implements the third test case. Creates 3 instances of the <i>Singleton * </i>'s subclass. These objects should be different. - */ + */ private static void test3() { - System.out.println("\nTest 3: Ensuring that subclasses can access the" + System.out.println("\nTest 3: Ensuring that subclasses can access the" + "constructor"); System.out.println(" (All three outputs should be different)"); - + printer1 = new PrinterSubclass(); printer2 = new PrinterSubclass(); - printer3 = new PrinterSubclass(); - + printer3 = new PrinterSubclass(); + printer1.print(); printer2.print(); - printer3.print(); + printer3.print(); } - - + + /** * This is the driver for the <code>Singleton</code> case. It performes * three tests: @@ -147,7 +147,7 @@ public class Main { * objects should be different. * </OL> */ - + public static void main (String[] args) { System.out.println("Testing SINGLETON pattern (aspectj) ..."); test1(); @@ -155,4 +155,4 @@ public class Main { test3(); System.out.println("\n... done."); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/singleton/aspectj/Printer.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/singleton/aspectj/Printer.java index 867b34b73..516b335bf 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/singleton/aspectj/Printer.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/singleton/aspectj/Printer.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.singleton.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,22 +15,22 @@ package ca.ubc.cs.spl.aspectPatterns.examples.singleton.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** * Implements a sample class that will be assigned the <i>Singleton</i> role * in this example. The class's functionality * is to store an instance-specific ID and provide a <code>print()</code> - * method that shows an object's ID. + * method that shows an object's ID. * * Note that in this implementation the class does not have to know * that it is a <i>Singleton</i> (i.e. has no pattern code in it). - * + * * Note further that instead of assigning the <i>Singleton</i> property * via the <code>declare parents</code> construct in the aspect, it is * possible to just add a <code>implements Singleton</doce> here. However, @@ -41,35 +41,34 @@ package ca.ubc.cs.spl.aspectPatterns.examples.singleton.aspectj; * @version 1.1, 02/18/04 */ -public class Printer { +public class Printer { /** * counts the instances of this class */ - + protected static int objectsSoFar = 0; /** * each instance has an ID to distinguish them. */ - + protected int id; /** * Creates a <code>Printer</code> object. Note that the constructor * is not protected; the protection is realized by the aspect. */ - + public Printer() { id = ++ objectsSoFar; } - + /** * Prints the instance's ID to <code>System.out</code>. */ - + public void print() { System.out.println("\tMy ID is "+id); } } -
\ No newline at end of file diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/singleton/aspectj/PrinterSubclass.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/singleton/aspectj/PrinterSubclass.java index 8ec000bc5..01c9ce439 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/singleton/aspectj/PrinterSubclass.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/singleton/aspectj/PrinterSubclass.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.singleton.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,32 +15,32 @@ package ca.ubc.cs.spl.aspectPatterns.examples.singleton.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ - + /** - * Implements a sample subclass of the <i>Singleton</i> class. This class is + * Implements a sample subclass of the <i>Singleton</i> class. This class is * to test whether subclasses can still access the Singleton's constructor. * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/18/04 - * + * * @see PrinterSingleton */ -public class PrinterSubclass extends Printer { +public class PrinterSubclass extends Printer { /** * Creates an instance of this class by calling <code>super()</code>. */ - + public PrinterSubclass() { super(); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/singleton/aspectj/SingletonInstance.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/singleton/aspectj/SingletonInstance.java index d87e6373c..47dcfd95c 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/singleton/aspectj/SingletonInstance.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/singleton/aspectj/SingletonInstance.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.singleton.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,11 +15,11 @@ package ca.ubc.cs.spl.aspectPatterns.examples.singleton.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ import ca.ubc.cs.spl.aspectPatterns.patternLibrary.SingletonProtocol; @@ -33,28 +33,28 @@ import ca.ubc.cs.spl.aspectPatterns.patternLibrary.SingletonProtocol; * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/18/04 - * + * * @see Printer * @see PrinterSubclass */ -public aspect SingletonInstance extends SingletonProtocol { - +public aspect SingletonInstance extends SingletonProtocol { + /** - * Assigns the Singleton to <code>Printer</code>. This is all that is + * Assigns the Singleton to <code>Printer</code>. This is all that is * necessary to provide <code>Printer</i>'s constructor with the * Singleton protection. */ - - declare parents: Printer implements Singleton; - + + declare parents: Printer implements Singleton; + /** * This declaration allows <code>PrinterSubclass</code> (and all its * subclasses) to access <code>Printer</code>'s constructor within * its constructor (to allow for <code>super(..)</code> calls). */ - - protected pointcut protectionExclusions(): - call((PrinterSubclass+).new(..)); -}
\ No newline at end of file + + protected pointcut protectionExclusions(): + call((PrinterSubclass+).new(..)); +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/singleton/java/Main.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/singleton/java/Main.java index a03707666..3e681ec4e 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/singleton/java/Main.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/singleton/java/Main.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.singleton.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,124 +15,124 @@ package ca.ubc.cs.spl.aspectPatterns.examples.singleton.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** - * Implements the driver for the Singleton design pattern example.<p> + * Implements the driver for the Singleton design pattern example.<p> * * Intent: <i>Ensure that a class has only one instance and provide a global * point of access to it.</i><p> * - * Participating objects are <code>PrinterSingleton</code> printer1, printer2, printer3 and + * Participating objects are <code>PrinterSingleton</code> printer1, printer2, printer3 and * <code>PrinterSubclass</code> ps1, ps2, ps3.<p> * * Three different objects of both PrinterSingleton and PrinterSubclass are - * instantiated and compared. + * instantiated and compared. * - * This Implementation treats the singleton property as a non-inherited + * This Implementation treats the singleton property as a non-inherited * property. This meant that <i>Singleton</i> classes can still be subclassed * and these subclasses can access the <i>Singleton</i> constructor normally. * * <p><i>This is the Java version.</i><p> - * - * Making the singleton property non-inherited requires to make the + * + * Making the singleton property non-inherited requires to make the * constructor of the <i>Singleton</i> protected (so subtypes can still * invoke <code>super(..)</code> in their constructor). * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/18/04 - * + * * @see PrinterSingleton * @see PrinterSubclass */ -class Main { - +class Main { + /** * the three object references to instances of the <i>Singleton</i> class. */ - + private static PrinterSingleton printer1, printer2, printer3; /** - * Implements the first test case. Creates 3 references to the - * <i>Singleton</i> by (a) using the regular constructor and then by (b) + * Implements the first test case. Creates 3 references to the + * <i>Singleton</i> by (a) using the regular constructor and then by (b) * using a factory method. (a) should fail (but does not, since this * <code>Main</code> class is in the same package and can access the * protected constructor), (b) should create three identical objects. - */ - + */ + private static void test1() { System.out.println("\nTest 1a: Try to call regular constructor. " + "This should fail."); - + printer1 = new PrinterSingleton(); printer2 = new PrinterSingleton(); printer3 = new PrinterSingleton(); - + printer1.print(); printer2.print(); - printer3.print(); - + printer3.print(); + System.out.println("\t=> OO Problem: Classes in the same package can " + "access the protected constructor."); - + System.out.println("\nTest 1b: Using instance() instead. This hould " + "create three identical objects."); - + printer1 = PrinterSingleton.instance(); printer2 = PrinterSingleton.instance(); - printer3 = PrinterSingleton.instance(); - + printer3 = PrinterSingleton.instance(); + printer1.print(); printer2.print(); - printer3.print(); + printer3.print(); } - + /** * Implements the second test case. Tests if the 3 objects from test 1 are * in fact identical - */ + */ private static void test2() { System.out.println("\nTest 2: All three objects should be identical"); System.out.print("\tThey are "); - if ((printer1 == printer2) && (printer1 == printer3)) { - System.out.println("identical"); + if ((printer1 == printer2) && (printer1 == printer3)) { + System.out.println("identical"); } else { - System.out.println("not identical"); + System.out.println("not identical"); } } - + /** * Implements the third test case. Creates 3 instances of the <i>Singleton * </i>'s subclass. These objects should be different. - */ + */ private static void test3() { - System.out.println("\nTest 3: Ensuring that subclasses can access the" + System.out.println("\nTest 3: Ensuring that subclasses can access the" + " constructor"); System.out.println(" (All three outputs should be different)"); - + printer1 = new PrinterSubclass(); printer2 = new PrinterSubclass(); - printer3 = new PrinterSubclass(); - + printer3 = new PrinterSubclass(); + printer1.print(); printer2.print(); - printer3.print(); + printer3.print(); } - + /** * This is the driver for the <code>Singleton</code> case. It performes * three tests: @@ -146,12 +146,12 @@ class Main { * objects should be different. * </OL> */ - - public static void main (String[] args) { + + public static void main (String[] args) { System.out.println("Testing SINGLETON pattern (java) ..."); test1(); test2(); test3(); System.out.println("\n... done."); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/singleton/java/PrinterSingleton.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/singleton/java/PrinterSingleton.java index ee3d090e3..1341749d3 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/singleton/java/PrinterSingleton.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/singleton/java/PrinterSingleton.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.singleton.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -17,7 +17,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.singleton.java; * The Original Code is ca.ubc.cs.spl.aspectPatterns. * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * * Contributor(s): */ @@ -97,4 +97,3 @@ public class PrinterSingleton { System.out.println("\tMy ID is "+id); } } -
\ No newline at end of file diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/singleton/java/PrinterSubclass.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/singleton/java/PrinterSubclass.java index 218f99206..b0c7a36e4 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/singleton/java/PrinterSubclass.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/singleton/java/PrinterSubclass.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.singleton.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,15 +15,15 @@ package ca.ubc.cs.spl.aspectPatterns.examples.singleton.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ - + /** - * Implements a sample subclass of the <i>Singleton</i> class. This class is + * Implements a sample subclass of the <i>Singleton</i> class. This class is * to test whether subclasses can still access the Singleton's constructor. * * @author Jan Hannemann @@ -31,13 +31,13 @@ package ca.ubc.cs.spl.aspectPatterns.examples.singleton.java; * @version 1.1, 02/18/04 */ -public class PrinterSubclass extends PrinterSingleton { - +public class PrinterSubclass extends PrinterSingleton { + /** * Creates an instance of this class by calling <code>super()</code>. */ - + public PrinterSubclass() { super(); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/state/aspectj/Main.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/state/aspectj/Main.java index 4009e3291..ca2bdbb03 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/state/aspectj/Main.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/state/aspectj/Main.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.state.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,29 +15,29 @@ package ca.ubc.cs.spl.aspectPatterns.examples.state.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** - * Implements the driver for the State design pattern example.<p> + * Implements the driver for the State design pattern example.<p> * * Intent: <i>Allow an object to alter its behavior when its internal state * changes. The object will appear to change its class</i><p> * - * Participating objects are <code>Queue</code> as <i>Context</i>, and + * Participating objects are <code>Queue</code> as <i>Context</i>, and * <code>QueueNormal</code>, <code>QueueEmpty</code>, and <code>QueueFull * </code> as <i>ConcreteState</i>s. The <i>State</i> interface is defined in - * <code>QueueState</code>. - * <p> + * <code>QueueState</code>. + * <p> * * This example of the State design pattern models a Queue ADT with - * a limited capacity that has three different states: + * a limited capacity that has three different states: * <UL> - * <LI>Empty: The queue is empty + * <LI>Empty: The queue is empty * <LI>Normal: The queue is neither empty nor full * <LI>Full: The queue is full (# of elements = capacity) * </UL> @@ -53,19 +53,19 @@ package ca.ubc.cs.spl.aspectPatterns.examples.state.aspectj; * <LI>QueueState: State interface * <LI>QueueEmpty: ConcreteState1 * <LI>QueueNormal: ConcreteState2 - * <LI>QueueFull: ConcreteState3 + * <LI>QueueFull: ConcreteState3 * </UL> * <p><i>This is the AspectJ version.</i><p> * - * This implementation uses a concrete aspect to take care of all the state + * This implementation uses a concrete aspect to take care of all the state * transitions in the system. States are no longer tangled with each other - * as they do not have to know about their successor states. All state + * as they do not have to know about their successor states. All state * transitions are localized in the aspect. * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/17/04 - * + * * @see Queue * @see QueueState * @see QueueEmpty @@ -74,20 +74,20 @@ package ca.ubc.cs.spl.aspectPatterns.examples.state.aspectj; * @see QueueStateAspect */ -public class Main { +public class Main { /** * Implements insertion into a queue. Prints out status messages. * * @param queue the queue to insert into * @param s the string to insert into the queue - */ + */ public static void testInsert(Queue queue, String s) { System.out.print(" Trying to insert ["+s+"] into the queue ... "); boolean status = queue.insert(s); if (status == true) { - System.out.println("successful"); + System.out.println("successful"); } else { System.out.println("NOT successful, queue probably full"); } @@ -97,21 +97,21 @@ public class Main { * Implements deletion from a queue. Prints out status messages. * * @param queue the queue to delete items from - */ + */ public static void testRemove(Queue queue) { System.out.print(" Trying to remove 1st element of the queue ... "); - String item = (String) queue.getFirst(); + String item = (String) queue.getFirst(); boolean status = queue.removeFirst(); if (status == true) { - System.out.println("successful: "+item); + System.out.println("successful: "+item); } else { System.out.println("NOT successful: "+item); } } /** - * Implements the driver for the State design pattern example.<p> + * Implements the driver for the State design pattern example.<p> * * @param args the command line paramters, unused */ @@ -119,12 +119,12 @@ public class Main { public static void main(String[] args) { System.out.println("Testing Pattern: State - STARTING\n"); - + Queue queue = new Queue(); testInsert(queue, "This "); - testInsert(queue, "is "); + testInsert(queue, "is "); testInsert(queue, "a "); - testInsert(queue, "test"); + testInsert(queue, "test"); System.out.println(); testRemove(queue); testRemove(queue); @@ -135,4 +135,3 @@ public class Main { } } -
\ No newline at end of file diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/state/aspectj/Queue.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/state/aspectj/Queue.java index c5709666d..07ff2a756 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/state/aspectj/Queue.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/state/aspectj/Queue.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.state.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,17 +15,17 @@ package ca.ubc.cs.spl.aspectPatterns.examples.state.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** * Implements the <i>context</i> of the queue example. This is effectively * a queue with limited capacity. Requests are forwarded to the current state - * object. + * object. * * @author Jan Hannemann * @author Gregor Kiczales @@ -33,53 +33,53 @@ package ca.ubc.cs.spl.aspectPatterns.examples.state.aspectj; */ public class Queue { - + /** * the current state of this context - */ + */ + + protected QueueState state = new QueueEmpty(); - protected QueueState state = new QueueEmpty(); - /** - * Tries to insert an object into the queue. Returns true if successful, + * Tries to insert an object into the queue. Returns true if successful, * false otherwiese. * * @param arg the object to be inserted into the queue * @return true if insertion was successful, false otherwise. - */ + */ - public boolean insert(Object arg) { + public boolean insert(Object arg) { return state.insert(arg); } - + /** * Returns the first item in the queue * * @return the first item in the queue - */ + */ - public Object getFirst() { + public Object getFirst() { return state.getFirst(); } - + /** * Tries to remove an object from the queue. Returns true if successful, * false otherwiese. * * @return true if deletion was successful, false otherwise. - */ + */ - public boolean removeFirst() { + public boolean removeFirst() { return state.removeFirst(); - } - + } + /** * Sets the state of the context to the arguments state. * * @param state the new state for the context object. */ - + public void setState(QueueState state) { this.state = state; - } -}
\ No newline at end of file + } +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/state/aspectj/QueueEmpty.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/state/aspectj/QueueEmpty.java index 579bea67e..57212fe6a 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/state/aspectj/QueueEmpty.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/state/aspectj/QueueEmpty.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.state.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,27 +15,27 @@ package ca.ubc.cs.spl.aspectPatterns.examples.state.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** - * Implements the <i>ConcreteState</i> "empty" for the queue example. - * Removing items is impossible if the queue is empty. + * Implements the <i>ConcreteState</i> "empty" for the queue example. + * Removing items is impossible if the queue is empty. * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/17/04 - * + * * @see QueueNormal * @see QueueFull */ public class QueueEmpty implements QueueState { - + /** * Tries to insert an object into the queue. Returns true since it is * always possible to insert items into an empty queue. The appropriate @@ -43,34 +43,34 @@ public class QueueEmpty implements QueueState { * * @param arg the object to be inserted into the queue * @return true. - */ + */ - public boolean insert(Object arg) { - return true; + public boolean insert(Object arg) { + return true; } /** - * Returns the first item in the queue. Returns null since the queue is + * Returns the first item in the queue. Returns null since the queue is * empty. * * @return null. - */ + */ public Object getFirst() { return null; } /** - * Tries to remove an object from the queue. Returns false (queue is + * Tries to remove an object from the queue. Returns false (queue is * empty). * - * @param context the <i>Context</i> for this design pattern (for update + * @param context the <i>Context</i> for this design pattern (for update * on demand) * @return false. - */ + */ public boolean removeFirst(){ return false; - } + } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/state/aspectj/QueueFull.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/state/aspectj/QueueFull.java index bf9b4e8b3..c1447194e 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/state/aspectj/QueueFull.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/state/aspectj/QueueFull.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.state.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,16 +15,16 @@ package ca.ubc.cs.spl.aspectPatterns.examples.state.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** - * Implements the <i>ConcreteState</i> "full" for the queue example. - * Inserting items is impossible if the queue is full. + * Implements the <i>ConcreteState</i> "full" for the queue example. + * Inserting items is impossible if the queue is full. * * @author Jan Hannemann * @author Gregor Kiczales @@ -39,13 +39,13 @@ public class QueueFull implements QueueState { /** * stores the items in the queue */ - + protected Object[] items; - + /** * stores the index of the first item in the queue. - */ - + */ + protected int first; /** @@ -54,32 +54,32 @@ public class QueueFull implements QueueState { * * @param arg the object to be inserted into the queue * @return false. - */ - - public boolean insert(Object arg) { + */ + + public boolean insert(Object arg) { return false; } /** - * Returns the first item in the queue. + * Returns the first item in the queue. * * @return the first item in the queue. - */ + */ - public Object getFirst() { + public Object getFirst() { return items[first]; } /** * Tries to remove an object from the queue. Returns true if successful, - * false otherwiese. The state transition to "normal" is implemented by + * false otherwiese. The state transition to "normal" is implemented by * the aspect. * - * @return true since it is always possible to delete an item from a + * @return true since it is always possible to delete an item from a * full queue - */ + */ - public boolean removeFirst(){ + public boolean removeFirst(){ return true; } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/state/aspectj/QueueNormal.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/state/aspectj/QueueNormal.java index f719d8f6a..2342b9fba 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/state/aspectj/QueueNormal.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/state/aspectj/QueueNormal.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.state.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,15 +15,15 @@ package ca.ubc.cs.spl.aspectPatterns.examples.state.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** - * Implements the <i>ConcreteState</i> "normal" for the queue example. + * Implements the <i>ConcreteState</i> "normal" for the queue example. * Inserting and deleting items is possible in this state. * * @author Jan Hannemann @@ -31,64 +31,64 @@ package ca.ubc.cs.spl.aspectPatterns.examples.state.aspectj; * @version 1.1, 02/17/04 * * @see QueueEmpty - * @see QueueFull + * @see QueueFull */ public class QueueNormal implements QueueState { - + /** * stores the items in the queue */ - + protected Object[] items = new Object[3]; /** * stores the index of the first item in the queue */ - - protected int first = 0; + + protected int first = 0; /** * stores the index of the last item in the queue */ - + protected int last = 0; /** - * Tries to insert an object into the queue. Returns true if successful, - * false otherwiese. Potential state changes to "full" are facilitated + * Tries to insert an object into the queue. Returns true if successful, + * false otherwiese. Potential state changes to "full" are facilitated * by the aspect. * * @param arg the object to be inserted into the queue * @return true if insertion was successful, false otherwise. - */ - + */ + public boolean insert(Object arg) { // Inserts a new Object into the queue - items[(last)%items.length] = arg; - last = (last+1) % items.length; + items[(last)%items.length] = arg; + last = (last+1) % items.length; return true; } /** - * Returns the first item in the queue. + * Returns the first item in the queue. * * @returns null. - */ + */ - public Object getFirst() { // Returns the first element in the queue + public Object getFirst() { // Returns the first element in the queue return items[first]; } /** * Tries to remove an object from the queue. Returns true if successful, - * false otherwiese. Potential state changes to "empty" are facilitated + * false otherwiese. Potential state changes to "empty" are facilitated * by the aspect. * * @return true if deletion was successful, false otherwise. - */ + */ - public boolean removeFirst(){ // Removes the first element from the queue - first = (first + 1) % items.length; + public boolean removeFirst(){ // Removes the first element from the queue + first = (first + 1) % items.length; return true; } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/state/aspectj/QueueState.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/state/aspectj/QueueState.java index 32de7a10c..bf65a924e 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/state/aspectj/QueueState.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/state/aspectj/QueueState.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.state.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -17,7 +17,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.state.aspectj; * The Original Code is ca.ubc.cs.spl.aspectPatterns. * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * * Contributor(s): */ @@ -62,4 +62,4 @@ public interface QueueState { public boolean removeFirst(); -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/state/aspectj/QueueStateAspect.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/state/aspectj/QueueStateAspect.java index bfdcae8e4..aa5ef22da 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/state/aspectj/QueueStateAspect.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/state/aspectj/QueueStateAspect.java @@ -1,4 +1,4 @@ -package ca.ubc.cs.spl.aspectPatterns.examples.state.aspectj; +package ca.ubc.cs.spl.aspectPatterns.examples.state.aspectj; /* -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- * @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.state.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,62 +15,62 @@ package ca.ubc.cs.spl.aspectPatterns.examples.state.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** - * Implements the state transitions for this state design pattern example. - * State transitions are realizied as <code>after</code> advice. The + * Implements the state transitions for this state design pattern example. + * State transitions are realizied as <code>after</code> advice. The * joinpoints are the calls from the context to its state object.<p> * - * Exisiting states are reused without a employing a flyweight mechanism or + * Exisiting states are reused without a employing a flyweight mechanism or * (inflexibly) modularizing the transitions in the context. * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/17/04 - * + * */ public aspect QueueStateAspect { - - /** + + /** * the queue's "empty" state - */ - + */ + protected QueueEmpty empty = new QueueEmpty(); - /** + /** * the queue's "normal" state - */ + */ protected QueueNormal normal = new QueueNormal(); - /** + /** * the queue's "full" state - */ + */ - protected QueueFull full = new QueueFull(); + protected QueueFull full = new QueueFull(); - /** - * Sets the initial state of the queue to empty. + /** + * Sets the initial state of the queue to empty. * * @param queue the queue context that is initialized. */ - + after(Queue queue): initialization(new()) && target(queue) { queue.setState(empty); } - /** - * Updates the queue context's state after each call from it to the + /** + * Updates the queue context's state after each call from it to the * <code>insert(Object)</code> method if its current state. * * @param queue the queue context that makes the call. @@ -79,20 +79,20 @@ public aspect QueueStateAspect { */ after(Queue queue, QueueState qs, Object arg): call(boolean QueueState+.insert(Object)) && target(qs) && args(arg) && this(queue) { - if (qs == empty) { + if (qs == empty) { normal.insert(arg); queue.setState(normal); - } else if (qs == normal) { + } else if (qs == normal) { if (normal.first == normal.last) { full.items = normal.items; full.first = normal.first; queue.setState(full); } } - } - - /** - * Updates the queue context's state after each call from it to the + } + + /** + * Updates the queue context's state after each call from it to the * <code>removeFirst()</code> method if its current state. * * @param queue the queue context that makes the call. @@ -110,5 +110,5 @@ public aspect QueueStateAspect { queue.setState(empty); } } - } -}
\ No newline at end of file + } +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/state/java/Main.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/state/java/Main.java index 423feb302..63bd00f7e 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/state/java/Main.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/state/java/Main.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.state.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,33 +15,33 @@ package ca.ubc.cs.spl.aspectPatterns.examples.state.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** - * Implements the driver for the State design pattern example.<p> + * Implements the driver for the State design pattern example.<p> * * Intent: <i>Allow an object to alter its behavior when its internal state * changes. The object will appear to change its class</i><p> * - * Participating objects are <code>Queue</code> as <i>Context</i>, and + * Participating objects are <code>Queue</code> as <i>Context</i>, and * <code>QueueNormal</code>, <code>QueueEmpty</code>, and <code>QueueFull * </code> as <i>ConcreteState</i>s. The <i>State</i> interface is defined in * <code>QueueState</code>. This version implements an update-on-demand * logic (see GoF, implementation 1, page 308). The logic requires passing * the context to calls to methods defined on the state interface, and an - * interface for context objects. The interface is defined in + * interface for context objects. The interface is defined in * <code>QueueContext</code>. - * <p> + * <p> * * This example of the State design pattern models a Queue ADT with - * a limited capacity that has three different states: + * a limited capacity that has three different states: * <UL> - * <LI>Empty: The queue is empty + * <LI>Empty: The queue is empty * <LI>Normal: The queue is neither empty nor full * <LI>Full: The queue is full (# of elements = capacity) * </UL> @@ -57,14 +57,14 @@ package ca.ubc.cs.spl.aspectPatterns.examples.state.java; * <LI>QueueState: State interface * <LI>QueueEmpty: ConcreteState1 * <LI>QueueNormal: ConcreteState2 - * <LI>QueueFull: ConcreteState3 + * <LI>QueueFull: ConcreteState3 * </UL> - * This implementation passes the context as an argument to its method + * This implementation passes the context as an argument to its method * calls to state objects, thus allowing for update on demand and removing * the constraint that Queue has to ask the states for the successor state * after each call. * - * According to GoF, this implementation is generally more flexible than + * According to GoF, this implementation is generally more flexible than * having the state transitions fixed in the context object. Note however * that this approach results in a tight coupling of <i>ConcreteState</i>s * and <i>Context</i> objects. @@ -74,7 +74,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.state.java; * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/17/04 - * + * * @see QueueContext * @see Queue * @see QueueState @@ -84,20 +84,20 @@ package ca.ubc.cs.spl.aspectPatterns.examples.state.java; */ -public class Main { - +public class Main { + /** * Implements insertion into a queue. Prints out status messages. * * @param queue the queue to insert into * @param s the string to insert into the queue - */ + */ private static void testInsert(Queue queue, String s) { System.out.print(" Trying to insert ["+s+"] into the queue ... "); boolean status = queue.insert(s); if (status == true) { - System.out.println("successful"); + System.out.println("successful"); } else { System.out.println("NOT successful, queue probably full"); } @@ -107,21 +107,21 @@ public class Main { * Implements deletion from a queue. Prints out status messages. * * @param queue the queue to delete items from - */ + */ private static void testRemove(Queue queue) { System.out.print(" Trying to remove 1st element of the queue ... "); - String item = (String) queue.getFirst(); + String item = (String) queue.getFirst(); boolean status = queue.removeFirst(); if (status == true) { - System.out.println("successful: "+item); + System.out.println("successful: "+item); } else { System.out.println("NOT successful: "+item); } } /** - * Implements the driver for the State design pattern example.<p> + * Implements the driver for the State design pattern example.<p> * * @param args the command line paramters, unused */ @@ -129,12 +129,12 @@ public class Main { public static void main(String[] args) { System.out.println("Testing Pattern: State - STARTING\n"); - + Queue queue = new Queue(); testInsert(queue, "This "); - testInsert(queue, "is "); + testInsert(queue, "is "); testInsert(queue, "a "); - testInsert(queue, "test"); + testInsert(queue, "test"); System.out.println(); testRemove(queue); testRemove(queue); @@ -144,4 +144,3 @@ public class Main { System.out.println("\nTesting Pattern: State - FINISHED"); } } -
\ No newline at end of file diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/state/java/Queue.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/state/java/Queue.java index 141a76560..229d8b538 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/state/java/Queue.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/state/java/Queue.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.state.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,71 +15,71 @@ package ca.ubc.cs.spl.aspectPatterns.examples.state.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** * Implements the <i>context</i> of the queue example. This is effectively * a queue with limited capacity. Requests are forwarded to the current state - * object. + * object. * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/17/04 */ -public class Queue implements QueueContext { - +public class Queue implements QueueContext { + /** * the current <i>State</i> of this <i>Context</i> - */ - - protected QueueState state = new QueueEmpty(); - + */ + + protected QueueState state = new QueueEmpty(); + /** - * Tries to insert an object into the queue. Returns true if successful, + * Tries to insert an object into the queue. Returns true if successful, * false otherwiese. * * @param arg the object to be inserted into the queue * @return true if insertion was successful, false otherwise. - */ - - public boolean insert(Object arg) { + */ + + public boolean insert(Object arg) { return state.insert(this, arg); } - + /** * Returns the first item in the queue * * @return the first item in the queue - */ + */ - public Object getFirst() { + public Object getFirst() { return state.getFirst(this); } - + /** * Tries to remove an object from the queue. Returns true if successful, * false otherwise. * * @return true if deletion was successful, false otherwise. - */ + */ public boolean removeFirst() { // Removes the first element from the queue return state.removeFirst(this); - } - + } + /** * Sets the state of the context to the arguments state. * * @param state the new state for the context object. */ - + public void setState(QueueState state) { this.state = state; } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/state/java/QueueContext.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/state/java/QueueContext.java index 09ce140cb..6d7e34ff2 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/state/java/QueueContext.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/state/java/QueueContext.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.state.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,16 +15,16 @@ package ca.ubc.cs.spl.aspectPatterns.examples.state.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** - * Defines the interface for <i>Context</i>s within this queue example. The - * operation provided is <code>setState(QueueState)</code>. + * Defines the interface for <i>Context</i>s within this queue example. The + * operation provided is <code>setState(QueueState)</code>. * * @author Jan Hannemann * @author Gregor Kiczales @@ -38,6 +38,6 @@ public interface QueueContext { * * @param state the new state for the context object. */ - + public void setState(QueueState state); -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/state/java/QueueEmpty.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/state/java/QueueEmpty.java index a914dffd5..b681005c8 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/state/java/QueueEmpty.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/state/java/QueueEmpty.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.state.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,69 +15,69 @@ package ca.ubc.cs.spl.aspectPatterns.examples.state.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** - * Implements the <i>ConcreteState</i> "empty" for the queue example. + * Implements the <i>ConcreteState</i> "empty" for the queue example. * Removing items is impossible if the queue is empty. Inserting items will * trigger a state change to "normal". * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/17/04 - * + * * @see QueueNormal * @see QueueFull */ public class QueueEmpty implements QueueState { - + /** - * Tries to insert an object into the queue. Returns true if successful, + * Tries to insert an object into the queue. Returns true if successful, * false otherwiese. The state of the context * is changed to "normal" (queue is no longer empty). * - * @param context the <i>Context</i> for this design pattern (for update + * @param context the <i>Context</i> for this design pattern (for update * on demand) * @param arg the object to be inserted into the queue * @return true if insertion was successful, false otherwise. - */ - + */ + public boolean insert(QueueContext context, Object arg) { - QueueNormal nextState = new QueueNormal(); + QueueNormal nextState = new QueueNormal(); context.setState(nextState); - return nextState.insert(context, arg); + return nextState.insert(context, arg); } /** - * Returns the first item in the queue. Returns null since the queue is + * Returns the first item in the queue. Returns null since the queue is * empty. * - * @param context the <i>Context</i> for this design pattern (for update + * @param context the <i>Context</i> for this design pattern (for update * on demand) * @return null. - */ + */ public Object getFirst(QueueContext context) { return null; } /** - * Tries to remove an object from the queue. Returns false (queue is + * Tries to remove an object from the queue. Returns false (queue is * empty). * - * @param context the <i>Context</i> for this design pattern (for update + * @param context the <i>Context</i> for this design pattern (for update * on demand) * @return false. - */ + */ public boolean removeFirst(QueueContext context){ return false; - } + } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/state/java/QueueFull.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/state/java/QueueFull.java index 1e5f677d4..4659f8def 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/state/java/QueueFull.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/state/java/QueueFull.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.state.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,15 +15,15 @@ package ca.ubc.cs.spl.aspectPatterns.examples.state.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** - * Implements the <i>ConcreteState</i> "full" for the queue example. + * Implements the <i>ConcreteState</i> "full" for the queue example. * Inserting items is impossible if the queue is full. Removing items will * trigger a state change to "normal". * @@ -40,18 +40,18 @@ public class QueueFull implements QueueState { /** * stores the items in the queue */ - + protected Object[] items; - + /** - * stores the index of the first item in the queue. - */ - + * stores the index of the first item in the queue. + */ + protected int first; /** * Creates a new QueueFull state object with the given set of elements - * and the given index. + * and the given index. * * @param items the content of the full queue * @param first the index of the first item in the queue @@ -66,25 +66,25 @@ public class QueueFull implements QueueState { * Tries to insert an object into the queue. Returns false since the * queue is full. * - * @param context the <i>Context</i> for this design pattern (for update + * @param context the <i>Context</i> for this design pattern (for update * on demand) * @param arg the object to be inserted into the queue * @return false. - */ - - public boolean insert(QueueContext context, Object arg) { + */ + + public boolean insert(QueueContext context, Object arg) { return false; } /** - * Returns the first item in the queue. + * Returns the first item in the queue. * - * @param context the <i>Context</i> for this design pattern (for update + * @param context the <i>Context</i> for this design pattern (for update * on demand) * @return the first item in the queue. - */ + */ - public Object getFirst(QueueContext context) { + public Object getFirst(QueueContext context) { return items[first]; } @@ -92,14 +92,14 @@ public class QueueFull implements QueueState { * Tries to remove an object from the queue. Returns true if successful, * false otherwiese. The state of the context is changed to "normal". * - * @param context the <i>Context</i> for this design pattern (for update + * @param context the <i>Context</i> for this design pattern (for update * on demand) * @return true if deletion was successful, false otherwise. - */ + */ - public boolean removeFirst(QueueContext context){ - QueueState nextState = new QueueNormal(items, first, first); + public boolean removeFirst(QueueContext context){ + QueueState nextState = new QueueNormal(items, first, first); context.setState(nextState); return nextState.removeFirst(context); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/state/java/QueueNormal.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/state/java/QueueNormal.java index cb006cf40..bcb6981a2 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/state/java/QueueNormal.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/state/java/QueueNormal.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.state.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,15 +15,15 @@ package ca.ubc.cs.spl.aspectPatterns.examples.state.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** - * Implements the <i>ConcreteState</i> "normal" for the queue example. + * Implements the <i>ConcreteState</i> "normal" for the queue example. * Inserting and deleting items is possible in this state. * * @author Jan Hannemann @@ -31,32 +31,32 @@ package ca.ubc.cs.spl.aspectPatterns.examples.state.java; * @version 1.1, 02/17/04 * * @see QueueEmpty - * @see QueueFull + * @see QueueFull */ public class QueueNormal implements QueueState { - + /** * stores the items in the queue */ - + protected Object[] items = new Object[3]; /** * stores the index of the first item in the queue */ - - protected int first = 0; + + protected int first = 0; /** * stores the index of the last item in the queue */ - + protected int last = 0; /** * Creates a new QueueNormal state object with the given set of elements - * and the given indices for first and last object. + * and the given indices for first and last object. * * @param items the content of the full queue * @param first the index of the first item in the queue @@ -68,28 +68,28 @@ public class QueueNormal implements QueueState { this.first = first; this.last = last; } - - /** + + /** * Alternate constructor that uses preset values for object variables. */ - + public QueueNormal() { } /** - * Tries to insert an object into the queue. Returns true if successful, + * Tries to insert an object into the queue. Returns true if successful, * false otherwiese. If the queue is full * after the insertion, the state of the context is changed to "full". * - * @param context the <i>Context</i> for this design pattern (for update + * @param context the <i>Context</i> for this design pattern (for update * on demand) * @param arg the object to be inserted into the queue * @return true if insertion was successful, false otherwise. - */ - + */ + public boolean insert(QueueContext context, Object arg) { - items[(last)%items.length] = arg; - last = (last+1) % items.length; + items[(last)%items.length] = arg; + last = (last+1) % items.length; if (first == last) { context.setState(new QueueFull(items, first)); } @@ -97,14 +97,14 @@ public class QueueNormal implements QueueState { } /** - * Returns the first item in the queue. + * Returns the first item in the queue. * - * @param context the <i>Context</i> for this design pattern (for update + * @param context the <i>Context</i> for this design pattern (for update * on demand) * @return the first item in the queue. - */ + */ - public Object getFirst(QueueContext context) { + public Object getFirst(QueueContext context) { return items[first]; } @@ -114,16 +114,16 @@ public class QueueNormal implements QueueState { * the last one in the queue, the state of the context is changed to * "empty". * - * @param context the <i>Context</i> for this design pattern (for update + * @param context the <i>Context</i> for this design pattern (for update * on demand) * @return true if deletion was successful, false otherwise. - */ + */ - public boolean removeFirst(QueueContext context){ - first = (first + 1) % items.length; + public boolean removeFirst(QueueContext context){ + first = (first + 1) % items.length; if (first == last) { context.setState(new QueueEmpty()); } return true; } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/state/java/QueueState.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/state/java/QueueState.java index 7be872fc1..705ad923f 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/state/java/QueueState.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/state/java/QueueState.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.state.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,56 +15,56 @@ package ca.ubc.cs.spl.aspectPatterns.examples.state.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** - * Defines the interface for <i>State</i>s within this queue example. The + * Defines the interface for <i>State</i>s within this queue example. The * operations provided are <code>insert(..)</code>, <code>getFirst(..)</code>, - * and <code>removeFirst(..)</code>. + * and <code>removeFirst(..)</code>. * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/17/04 */ -public interface QueueState { - +public interface QueueState { + /** - * Tries to insert an object into the queue. Returns true if successful, + * Tries to insert an object into the queue. Returns true if successful, * false otherwiese. * - * @param context the <i>Context</i> for this design pattern (for update + * @param context the <i>Context</i> for this design pattern (for update * on demand) * @param arg the object to be inserted into the queue * @return true if insertion was successful, false otherwise. - */ - + */ + public boolean insert(QueueContext context, Object arg); /** * Returns the first item in the queue * - * @param context the <i>Context</i> for this design pattern (for update + * @param context the <i>Context</i> for this design pattern (for update * on demand) * @return the first item in the queue - */ + */ - public Object getFirst(QueueContext context); + public Object getFirst(QueueContext context); /** * Tries to remove an object from the queue. Returns true if successful, * false otherwiese. * - * @param context the <i>Context</i> for this design pattern (for update + * @param context the <i>Context</i> for this design pattern (for update * on demand) * @return true if deletion was successful, false otherwise. - */ + */ - public boolean removeFirst(QueueContext context); + public boolean removeFirst(QueueContext context); -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/strategy/aspectj/BubbleSort.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/strategy/aspectj/BubbleSort.java index be404119f..18276668a 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/strategy/aspectj/BubbleSort.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/strategy/aspectj/BubbleSort.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.strategy.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,13 +15,13 @@ package ca.ubc.cs.spl.aspectPatterns.examples.strategy.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ - + /** * Implements the bubblesort sorting strategy for int arrays. * @@ -34,7 +34,7 @@ public class BubbleSort { /** * Helper method that exchanges two values in an int array - * + * * @param numbers the int array * @param pos1 the position of the first element * @param pos2 the position of the second element @@ -48,12 +48,12 @@ public class BubbleSort { /** * Sorts an int array using basic bubblesort - * + * * @param numbers the int array to sort */ public void sort(int[] numbers) { - System.out.print("Sorting by BubbleSort..."); + System.out.print("Sorting by BubbleSort..."); for (int end = numbers.length; end > 1; end --) { for (int current = 0; current < end - 1; current ++) { if (numbers[current] > numbers[current+1]) { @@ -64,4 +64,3 @@ public class BubbleSort { System.out.println("done."); } } - diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/strategy/aspectj/LinearSort.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/strategy/aspectj/LinearSort.java index fa7d5f4d6..6eae6e396 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/strategy/aspectj/LinearSort.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/strategy/aspectj/LinearSort.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.strategy.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,13 +15,13 @@ package ca.ubc.cs.spl.aspectPatterns.examples.strategy.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ - + /** * Implements the linear sort sorting strategy for int arrays. * @@ -31,10 +31,10 @@ package ca.ubc.cs.spl.aspectPatterns.examples.strategy.aspectj; */ public class LinearSort { - + /** * Helper method that exchanges two values in an int array - * + * * @param numbers the int array * @param pos1 the position of the first element * @param pos2 the position of the second element @@ -49,17 +49,17 @@ public class LinearSort { /** * Sorts an int array - * + * * @param numbers the int array to sort */ public void sort(int[] numbers) { System.out.print("Sorting by LinearSort..."); - int lowest = 0; - + int lowest = 0; + for (int start = 0; start < numbers.length; start ++) { lowest = start; - + for (int current = start; current < numbers.length; current ++) { if (numbers[current] < numbers[lowest]) { lowest = current; @@ -69,4 +69,4 @@ public class LinearSort { } System.out.println("done."); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/strategy/aspectj/Main.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/strategy/aspectj/Main.java index c219af7fe..5b9920f56 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/strategy/aspectj/Main.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/strategy/aspectj/Main.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.strategy.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,25 +15,25 @@ package ca.ubc.cs.spl.aspectPatterns.examples.strategy.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ - + /** - * Implements the driver for the strategy design pattern example.<p> + * Implements the driver for the strategy design pattern example.<p> * * Intent: <i>Define a family of algorithms, encapsulate each one, and make - * them interchangeable. Strategy lets the algorithm vary independently from + * them interchangeable. Strategy lets the algorithm vary independently from * clients that use it.</i><p> * * Participating objects are <code>LinearSort</code> and <i>BubbleSort</i> * as <i>Strategies</i>, and <code>Sorter</code> as <i>Context</i>. * * In this example, an array of 10 numbers is to be sorted. Depending on the - * number of arguments of the call to <code>Main</code>, linear sort or + * number of arguments of the call to <code>Main</code>, linear sort or * bubblesort are used as sorting algorithms. The interface for the strategies * is defined in <code>SortingStrategy</code>. * @@ -42,16 +42,16 @@ package ca.ubc.cs.spl.aspectPatterns.examples.strategy.aspectj; * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/17/04 - * + * * @see LinearSort * @see BubbleSort */ -public class Main { +public class Main { /** * Returns the content of the int array in a string - * + * * @param numbers the int array to display * @returns a string with all the ints from the array */ @@ -60,37 +60,35 @@ public class Main { String out = ""; for (int i=0; i<numbers.length; i++) { out += (numbers[i] + " "); - } + } return out; } /** * Implements the driver for the strategy example. If called with more * than zero arguments, bubblesort is used to sort the array of ten - * numbers; otherwise linear sort. - */ - + * numbers; otherwise linear sort. + */ + public static void main(String[] args) { int[] numbers = {3, 2, 9, 8, 1, 5, 6, 4, 7, 0}; - + LinearSort sort1 = new LinearSort(); BubbleSort sort2 = new BubbleSort(); - + Sorter sorter = new Sorter(); - - + + if (args.length == 0) { SortingStrategy.aspectOf().setConcreteStrategy(sorter, sort1); - } + } else { SortingStrategy.aspectOf().setConcreteStrategy(sorter, sort2); } System.out.println("\nPreparing sort..."); - System.out.println("original: "+show(numbers)); + System.out.println("original: "+show(numbers)); numbers = sorter.sort(numbers); - System.out.println("sorted: "+show(numbers)); - } -} - - + System.out.println("sorted: "+show(numbers)); + } +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/strategy/aspectj/Sorter.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/strategy/aspectj/Sorter.java index 0827addb5..6935c1b5d 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/strategy/aspectj/Sorter.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/strategy/aspectj/Sorter.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.strategy.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -17,7 +17,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.strategy.aspectj; * The Original Code is ca.ubc.cs.spl.aspectPatterns. * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * * Contributor(s): */ @@ -36,4 +36,4 @@ package ca.ubc.cs.spl.aspectPatterns.examples.strategy.aspectj; * @version 1.1, 02/17/04 */ -public class Sorter {}
\ No newline at end of file +public class Sorter {} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/strategy/aspectj/SortingStrategy.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/strategy/aspectj/SortingStrategy.java index 9657f08f6..764ad2935 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/strategy/aspectj/SortingStrategy.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/strategy/aspectj/SortingStrategy.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.strategy.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -17,7 +17,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.strategy.aspectj; * The Original Code is ca.ubc.cs.spl.aspectPatterns. * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * * Contributor(s): */ diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/strategy/java/BubbleSort.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/strategy/java/BubbleSort.java index 3009d9fd0..59066c161 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/strategy/java/BubbleSort.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/strategy/java/BubbleSort.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.strategy.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -17,7 +17,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.strategy.java; * The Original Code is ca.ubc.cs.spl.aspectPatterns. * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * * Contributor(s): */ @@ -65,4 +65,3 @@ public class BubbleSort implements SortingStrategy { System.out.println("done."); } } - diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/strategy/java/LinearSort.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/strategy/java/LinearSort.java index 0fa44cae1..22d570fb0 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/strategy/java/LinearSort.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/strategy/java/LinearSort.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.strategy.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,13 +15,13 @@ package ca.ubc.cs.spl.aspectPatterns.examples.strategy.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ - + /** * Implements the linear sort sorting strategy for int arrays. * @@ -31,10 +31,10 @@ package ca.ubc.cs.spl.aspectPatterns.examples.strategy.java; */ public class LinearSort implements SortingStrategy{ - + /** * Helper method that exchanges two values in an int array - * + * * @param numbers the int array * @param pos1 the position of the first element * @param pos2 the position of the second element @@ -49,17 +49,17 @@ public class LinearSort implements SortingStrategy{ /** * Sorts an int array - * + * * @param numbers the int array to sort */ public void sort(int[] numbers) { System.out.print("Sorting by LinearSort..."); - int lowest = 0; - + int lowest = 0; + for (int start = 0; start < numbers.length; start ++) { lowest = start; - + for (int current = start; current < numbers.length; current ++) { if (numbers[current] < numbers[lowest]) { lowest = current; @@ -69,4 +69,4 @@ public class LinearSort implements SortingStrategy{ } System.out.println("done."); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/strategy/java/Main.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/strategy/java/Main.java index 10df445f6..28eb85a36 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/strategy/java/Main.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/strategy/java/Main.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.strategy.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,18 +15,18 @@ package ca.ubc.cs.spl.aspectPatterns.examples.strategy.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ - + /** - * Implements the driver for the Strategy design pattern example.<p> + * Implements the driver for the Strategy design pattern example.<p> * * Intent: <i>Define a family of algorithms, encapsulate each one, and make - * them interchangeable. Strategy lets the algorithm vary independently from + * them interchangeable. Strategy lets the algorithm vary independently from * clients that use it.</i><p> * * Participating objects are <code>LinearSort</code> and <code>BubbleSort @@ -34,7 +34,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.strategy.java; * * In this example, an array of 10 numbers is to be sorted. Depending on the * number of arguments of the call to <code>Main.main(..)</code>, linear sort - * or bubblesort are used as sorting algorithms. The interface for the + * or bubblesort are used as sorting algorithms. The interface for the * <i>strategies</i> is defined in <code>SortingStrategy</code>. * * <p><i>This is the Java version.</i><p> @@ -42,34 +42,32 @@ package ca.ubc.cs.spl.aspectPatterns.examples.strategy.java; * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/17/04 - * + * * @see LinearSort * @see BubbleSort */ - -public class Main { - + +public class Main { + /** * Implements the driver for the strategy example. If called with more * than zero arguments, bubblesort is used to sort the array of ten - * numbers; otherwise linear sort is used. - */ - + * numbers; otherwise linear sort is used. + */ + public static void main(String[] args) { int[] numbers = {3, 2, 9, 8, 1, 5, 6, 4, 7, 0}; - + SortingStrategy sort1 = new LinearSort(); SortingStrategy sort2 = new BubbleSort(); - + Sorter sorter; - + if (args.length == 0) { sorter = new Sorter(sort1, numbers); - } + } else { sorter = new Sorter(sort2, numbers); } } -} - - +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/strategy/java/Sorter.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/strategy/java/Sorter.java index 4a53ffc39..635643049 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/strategy/java/Sorter.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/strategy/java/Sorter.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.strategy.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,45 +15,45 @@ package ca.ubc.cs.spl.aspectPatterns.examples.strategy.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ - + /** * Sorts an int array with a provided sorting strategy. * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/17/04 - * + * * @see LinearSort * @see BubbleSort */ -public class Sorter { - +public class Sorter { + /** * Shows the original (unsorted) array, sorts it and shows the new * (sorted) array. - * + * * @param sort the sorting strategy * @param numbers the array of int to sort */ public Sorter(SortingStrategy sort, int[] numbers) { System.out.println("\nPreparing sort..."); - System.out.println("original: "+show(numbers)); + System.out.println("original: "+show(numbers)); sort.sort(numbers); - System.out.println("sorted: "+show(numbers)); + System.out.println("sorted: "+show(numbers)); System.out.println("Done sorting."); } /** * Returns the content of the int array in a string - * + * * @param numbers the int array to display * @returns a string with all the ints from the array */ @@ -63,7 +63,7 @@ public class Sorter { for (int i=0; i<numbers.length; i++) { out += (numbers[i] + " "); - } + } return out; } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/strategy/java/SortingStrategy.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/strategy/java/SortingStrategy.java index e5d647549..3f925134e 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/strategy/java/SortingStrategy.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/strategy/java/SortingStrategy.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.strategy.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,13 +15,13 @@ package ca.ubc.cs.spl.aspectPatterns.examples.strategy.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ - + /** * Declares the interface for sorting strategies * diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/templateMethod/aspectj/DecoratedStringGenerator.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/templateMethod/aspectj/DecoratedStringGenerator.java index bededc15a..5941155d3 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/templateMethod/aspectj/DecoratedStringGenerator.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/templateMethod/aspectj/DecoratedStringGenerator.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.templateMethod.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -17,7 +17,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.templateMethod.aspectj; * The Original Code is ca.ubc.cs.spl.aspectPatterns. * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * * Contributor(s): */ @@ -64,6 +64,3 @@ public interface DecoratedStringGenerator { public String finalize (String s); } - - -
\ No newline at end of file diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/templateMethod/aspectj/FancyGenerator.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/templateMethod/aspectj/FancyGenerator.java index 2903a7191..d4ce7ad43 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/templateMethod/aspectj/FancyGenerator.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/templateMethod/aspectj/FancyGenerator.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.templateMethod.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,11 +15,11 @@ package ca.ubc.cs.spl.aspectPatterns.examples.templateMethod.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** @@ -44,7 +44,7 @@ public class FancyGenerator implements DecoratedStringGenerator { public String prepare (String s) { return s.toLowerCase(); } - + /** * Filters a string. Capitalizes all consonants. * @@ -53,22 +53,22 @@ public class FancyGenerator implements DecoratedStringGenerator { */ public String filter (String s) { - s = s.replace('a', 'A'); + s = s.replace('a', 'A'); s = s.replace('e', 'E'); - s = s.replace('i', 'I'); + s = s.replace('i', 'I'); s = s.replace('o', 'O'); s = s.replace('u', 'U'); - return s; + return s; } - + /** * Finalizes a string by adding an explanation to it. * * @param s the string to finalize * @return the finalized string */ - + public String finalize (String s) { return (s+".\n(all consonants identified)"); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/templateMethod/aspectj/Generating.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/templateMethod/aspectj/Generating.java index aa7d6be80..77e37f957 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/templateMethod/aspectj/Generating.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/templateMethod/aspectj/Generating.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.templateMethod.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,16 +15,16 @@ package ca.ubc.cs.spl.aspectPatterns.examples.templateMethod.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** * Implements an instance of the Template Method design pattern. - * Attaches the template method and its implementation to the + * Attaches the template method and its implementation to the * <i>AbstractClass</i>, thereby allowing it to be an interface. * * @author Jan Hannemann @@ -33,11 +33,11 @@ package ca.ubc.cs.spl.aspectPatterns.examples.templateMethod.aspectj; */ public aspect Generating { - + /** * Defines the implementation of the <i>TemplateMethod()</i>. * Generates a string with certain decorations. - * + * * @param s the string to be used to generate a decorated string from */ @@ -48,4 +48,3 @@ public aspect Generating { return s; } } -
\ No newline at end of file diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/templateMethod/aspectj/Main.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/templateMethod/aspectj/Main.java index fa4d447f2..7d98cf331 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/templateMethod/aspectj/Main.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/templateMethod/aspectj/Main.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.templateMethod.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,34 +15,34 @@ package ca.ubc.cs.spl.aspectPatterns.examples.templateMethod.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** * Implements the driver for the Template Method design pattern example.<p> * - * Intent: <i>Define the skeleton of an algorithm in an operation, deferring + * Intent: <i>Define the skeleton of an algorithm in an operation, deferring * some steps to subclasses. Template Method lets subclasses redefine certain * steps of an algorithm without changing the algorithm's structure</i><p> * - * Participating objects are <code>SimpleGenerator</code> and - * <code>FancyGenerator</code> as <i>ConcreteClass</i>es. The + * Participating objects are <code>SimpleGenerator</code> and + * <code>FancyGenerator</code> as <i>ConcreteClass</i>es. The * <i>AbstractClass</i> is <code>DecoratedStringGenerator</code>. * <p> * * In this example, the template method <code>generate(String)</code> - * modifies a string in three steps and returns the result. While the + * modifies a string in three steps and returns the result. While the * SimpleGenerator does not change the string much, the - * FancyGenerator turns the string to lowercase, then capitalizes all + * FancyGenerator turns the string to lowercase, then capitalizes all * consonants and adds an explanantion to it. * * <p><i>This is the AspectJ version.</i><p> * - * Note that <i>AbstractClass</i> is an interface. The implementation of the + * Note that <i>AbstractClass</i> is an interface. The implementation of the * template method is provided by the aspect. * * @author Jan Hannemann @@ -51,9 +51,9 @@ package ca.ubc.cs.spl.aspectPatterns.examples.templateMethod.aspectj; */ public class Main { - + /** - * Implements the driver for the Template Method design + * Implements the driver for the Template Method design * pattern example.<p> * * @param args the command line parameters, unused @@ -61,10 +61,10 @@ public class Main { public static void main(String[] args) { String original = "This Is The Original String To Be Processed"; - + DecoratedStringGenerator c1 = new SimpleGenerator(); DecoratedStringGenerator c2 = new FancyGenerator(); - + System.out.println("<Original>"); System.out.println(original); System.out.println("<SimpleGenerator>"); @@ -72,4 +72,4 @@ public class Main { System.out.println("<FancyGenerator>"); System.out.println(c2.generate(original)); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/templateMethod/aspectj/SimpleGenerator.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/templateMethod/aspectj/SimpleGenerator.java index c63a93ad9..c355c7046 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/templateMethod/aspectj/SimpleGenerator.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/templateMethod/aspectj/SimpleGenerator.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.templateMethod.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,15 +15,15 @@ package ca.ubc.cs.spl.aspectPatterns.examples.templateMethod.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** - * Implements a <i>ConcreteClass</i> that decorates strings by adding a + * Implements a <i>ConcreteClass</i> that decorates strings by adding a * period at the end of them. * * @author Jan Hannemann @@ -43,7 +43,7 @@ public class SimpleGenerator implements DecoratedStringGenerator { public String prepare (String s) { return s; } - + /** * Filters a string. Does nothing. * @@ -65,4 +65,4 @@ public class SimpleGenerator implements DecoratedStringGenerator { public String finalize (String s) { return s+"."; } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/templateMethod/java/DecoratedStringGenerator.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/templateMethod/java/DecoratedStringGenerator.java index 55a520687..b2c82d959 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/templateMethod/java/DecoratedStringGenerator.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/templateMethod/java/DecoratedStringGenerator.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.templateMethod.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,17 +15,17 @@ package ca.ubc.cs.spl.aspectPatterns.examples.templateMethod.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** - * Defines the interface for generating decorated strings. - * In this example, it acts as the <i>AbstractClass</i>. - * + * Defines the interface for generating decorated strings. + * In this example, it acts as the <i>AbstractClass</i>. + * * The template method is <code>generate(String)</code>, * which uses all other methods defined in this abstract class. * @@ -34,8 +34,8 @@ package ca.ubc.cs.spl.aspectPatterns.examples.templateMethod.java; * @version 1.1, 02/17/04 */ -public abstract class DecoratedStringGenerator { - +public abstract class DecoratedStringGenerator { + /** * Decorates a string. This is the <i>TemplateMethod()</i>. * @@ -49,7 +49,7 @@ public abstract class DecoratedStringGenerator { s = finalize(s); return s; } - + /** * Prepares a string for decoration. * @@ -60,7 +60,7 @@ public abstract class DecoratedStringGenerator { public abstract String prepare (String s); /** - * Filters a string. + * Filters a string. * * @param s the string to filter * @return the filtered string @@ -74,6 +74,6 @@ public abstract class DecoratedStringGenerator { * @param s the string to finalize * @return the finalized string */ - + public abstract String finalize (String s); -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/templateMethod/java/FancyGenerator.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/templateMethod/java/FancyGenerator.java index d55129bee..00f6e3f32 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/templateMethod/java/FancyGenerator.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/templateMethod/java/FancyGenerator.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.templateMethod.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,11 +15,11 @@ package ca.ubc.cs.spl.aspectPatterns.examples.templateMethod.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** @@ -33,18 +33,18 @@ package ca.ubc.cs.spl.aspectPatterns.examples.templateMethod.java; */ public class FancyGenerator extends DecoratedStringGenerator { - + /** * Prepares a string for decoration. Turns the string into lowercase. * * @param s the string to filter * @return the prepared string */ - + public String prepare (String s) { return s.toLowerCase(); } - + /** * Filters a string. Capitalizes all consonants. * @@ -53,22 +53,22 @@ public class FancyGenerator extends DecoratedStringGenerator { */ public String filter (String s) { - s = s.replace('a', 'A'); + s = s.replace('a', 'A'); s = s.replace('e', 'E'); - s = s.replace('i', 'I'); + s = s.replace('i', 'I'); s = s.replace('o', 'O'); s = s.replace('u', 'U'); - return s; + return s; } - + /** * Finalizes a string by adding an explanation to it. * * @param s the string to finalize * @return the finalized string */ - + public String finalize (String s) { return (s+".\n(all consonants capitalized)"); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/templateMethod/java/Main.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/templateMethod/java/Main.java index a9245b69b..bf04d6604 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/templateMethod/java/Main.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/templateMethod/java/Main.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.templateMethod.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,35 +15,35 @@ package ca.ubc.cs.spl.aspectPatterns.examples.templateMethod.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** * Implements the driver for the Template Method design pattern example.<p> * - * Intent: <i>Define the skeleton of an algorithm in an operation, deferring + * Intent: <i>Define the skeleton of an algorithm in an operation, deferring * some steps to subclasses. Template Method lets subclasses redefine certain * steps of an algorithm without changing the algorithm's structure</i><p> * - * Participating objects are <code>SimpleGenerator</code> and - * <code>FancyGenerator</code> as <i>ConcreteClass</i>es. The + * Participating objects are <code>SimpleGenerator</code> and + * <code>FancyGenerator</code> as <i>ConcreteClass</i>es. The * <i>AbstractClass</i> is <code>DecoratedStringGenerator</code>. * <p> * * In this example, the template method <code>generate(String)</code> - * modifies a string in three steps and returns the result. While the + * modifies a string in three steps and returns the result. While the * SimpleGenerator does not change the string much, the - * FancyGenerator turns the string to lowercase, then capitalizes all + * FancyGenerator turns the string to lowercase, then capitalizes all * consonants and adds an explanantion to it. * * <p><i>This is the Java version.</i><p> * * Note that <i>AbstractClass</i> does in fact have to be an abstract - * class (as opposed to an interface), to make it possible to define + * class (as opposed to an interface), to make it possible to define * a default implementation for the template method. * * @author Jan Hannemann @@ -54,18 +54,18 @@ package ca.ubc.cs.spl.aspectPatterns.examples.templateMethod.java; public class Main { /** - * Implements the driver for the Template Method design + * Implements the driver for the Template Method design * pattern example.<p> * * @param args the command line parameters, unused */ - + public static void main(String[] args) { String original = "This Is The Original String To Be Processed"; - + DecoratedStringGenerator c1 = new SimpleGenerator(); DecoratedStringGenerator c2 = new FancyGenerator(); - + System.out.println("<Original>"); System.out.println(original); System.out.println("<SimpleGenerator>"); @@ -73,4 +73,4 @@ public class Main { System.out.println("<FancyGenerator>"); System.out.println(c2.generate(original)); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/templateMethod/java/SimpleGenerator.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/templateMethod/java/SimpleGenerator.java index 425dcc9cd..1e82b7ba8 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/templateMethod/java/SimpleGenerator.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/templateMethod/java/SimpleGenerator.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.templateMethod.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,15 +15,15 @@ package ca.ubc.cs.spl.aspectPatterns.examples.templateMethod.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** - * Implements a <i>ConcreteClass</i> that decorates strings by adding a + * Implements a <i>ConcreteClass</i> that decorates strings by adding a * period at the end of them. * * @author Jan Hannemann @@ -43,7 +43,7 @@ public class SimpleGenerator extends DecoratedStringGenerator { public String prepare (String s) { return s; } - + /** * Filters a string. Does nothing. * @@ -54,7 +54,7 @@ public class SimpleGenerator extends DecoratedStringGenerator { public String filter (String s) { return s; } - + /** * Finalizes a string by adding a period to it. * @@ -65,4 +65,4 @@ public class SimpleGenerator extends DecoratedStringGenerator { public String finalize (String s) { return s+"."; } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/visitor/aspectj/BinaryTreeLeaf.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/visitor/aspectj/BinaryTreeLeaf.java index 24dad0e39..0bb20cfb5 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/visitor/aspectj/BinaryTreeLeaf.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/visitor/aspectj/BinaryTreeLeaf.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.visitor.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,15 +15,15 @@ package ca.ubc.cs.spl.aspectPatterns.examples.visitor.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** - * Implements a <i>ConcreteElement</i> of the aggregate strcuture. This is a + * Implements a <i>ConcreteElement</i> of the aggregate strcuture. This is a * terminal binary tree element (leaf). * * @author Jan Hannemann @@ -38,24 +38,24 @@ public class BinaryTreeLeaf implements Visitable { */ protected int value; - + /** * Creates a new Leaf with the given value. * * @param value the value of the leaf */ - + public BinaryTreeLeaf(int value) { this.value = value; - } - - /** + } + + /** * Accessor for the leaf's value * * @return the leaf's value */ - + public int getValue() { return value; } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/visitor/aspectj/BinaryTreeNode.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/visitor/aspectj/BinaryTreeNode.java index 84b87122c..f6871a6ba 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/visitor/aspectj/BinaryTreeNode.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/visitor/aspectj/BinaryTreeNode.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.visitor.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -17,7 +17,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.visitor.aspectj; * The Original Code is ca.ubc.cs.spl.aspectPatterns. * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * * Contributor(s): */ @@ -76,4 +76,4 @@ public class BinaryTreeNode implements Visitable { this.left = left; this.right = right; } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/visitor/aspectj/Main.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/visitor/aspectj/Main.java index 938f50f03..5966dc7c0 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/visitor/aspectj/Main.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/visitor/aspectj/Main.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.visitor.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,41 +15,41 @@ package ca.ubc.cs.spl.aspectPatterns.examples.visitor.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** - * Implements the driver for the Visitor design pattern example.<p> + * Implements the driver for the Visitor design pattern example.<p> * - * Intent: <i>Represents an operation to be performed on the elements of an + * Intent: <i>Represents an operation to be performed on the elements of an * object structure. Visitor lets you define a new operation without changing * the classes of the elements on which it operates</i><p> * - * Participating classes are <code>SummationVisitor</code> and - * <code>TraversalVisitor</code> as <i>ConcreteVisitor</i>s, implementing the + * Participating classes are <code>SummationVisitor</code> and + * <code>TraversalVisitor</code> as <i>ConcreteVisitor</i>s, implementing the * <code>VisitorProtocol.Visitor</code> interface. <BR> - * - * <code>BinaryTreeNode</code> and <code>BinaryTreeLeaf</code> are + * + * <code>BinaryTreeNode</code> and <code>BinaryTreeLeaf</code> are * <i>ConcreteElement</i>s, implementing the <code>Visitable</code> interface. * <p> * - * In this example, a binary tree that has int values as leafs is built. - * SummationVisitor is a <i>Visitor</i> that collects the sum of - * elements in the leafs (should be 6). - * - * TraversalVisitor is a <i>Visitor</i> that + * In this example, a binary tree that has int values as leafs is built. + * SummationVisitor is a <i>Visitor</i> that collects the sum of + * elements in the leafs (should be 6). + * + * TraversalVisitor is a <i>Visitor</i> that * collects a description of the tree like {{1,2},3} * * <p><i>This is the AspectJ version.</i><p> * * Note that <UL> - * <LI> Every visitor (even the inteface) has to know of each possible element - * type in the object structure. - * <LI> Nodes need not to know of the visitor interface; + * <LI> Every visitor (even the inteface) has to know of each possible element + * type in the object structure. + * <LI> Nodes need not to know of the visitor interface; * </UL> * * @author Jan Hannemann @@ -57,47 +57,47 @@ package ca.ubc.cs.spl.aspectPatterns.examples.visitor.aspectj; * @version 1.1, 02/17/04 */ -public class Main { - +public class Main { + /** - * Implements the driver for the Visitor design pattern example.<p> + * Implements the driver for the Visitor design pattern example.<p> * * @param args the command-line parameters, unused */ - public static void main(String[] args) { - + public static void main(String[] args) { + System.out.println("Building the tree (1): leaves"); - + BinaryTreeLeaf one = new BinaryTreeLeaf(1); BinaryTreeLeaf two = new BinaryTreeLeaf(2); BinaryTreeLeaf three = new BinaryTreeLeaf(3); - + System.out.println("Building the tree (1): regular nodes"); - + BinaryTreeNode regN = new BinaryTreeNode(one, two); BinaryTreeNode root = new BinaryTreeNode(regN, three); - + System.out.println("The tree now looks like this: "); System.out.println(" regN "); System.out.println(" / \\ "); System.out.println(" regN 3 "); System.out.println(" / \\ "); System.out.println(" 1 2 "); - + System.out.println("Visitor 1: SumVisitor, collects the sum of leaf"); System.out.println("values. Result should be 6."); - - SummationVisitor sumVisitor = new SummationVisitor(); + + SummationVisitor sumVisitor = new SummationVisitor(); root.accept(sumVisitor); - System.out.println(sumVisitor.report()); - + System.out.println(sumVisitor.report()); + System.out.println("Visitor 2: TraversalVisitor, collects a tree"); System.out.println("representation. Result should be {{1,2},3}."); - - TraversalVisitor traversalVisitor = new TraversalVisitor(); + + TraversalVisitor traversalVisitor = new TraversalVisitor(); root.accept(traversalVisitor); - System.out.println(traversalVisitor.report()); + System.out.println(traversalVisitor.report()); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/visitor/aspectj/SummationVisitor.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/visitor/aspectj/SummationVisitor.java index 928cbd90a..4aa0f7dfb 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/visitor/aspectj/SummationVisitor.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/visitor/aspectj/SummationVisitor.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.visitor.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,17 +15,17 @@ package ca.ubc.cs.spl.aspectPatterns.examples.visitor.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ import ca.ubc.cs.spl.aspectPatterns.patternLibrary.VisitorProtocol; /** - * Implements a <i>ConcreteVisitor</i> that collects the sum of all leaf + * Implements a <i>ConcreteVisitor</i> that collects the sum of all leaf * values in the tree. * * @author Jan Hannemann @@ -38,43 +38,43 @@ public class SummationVisitor implements VisitorProtocol.Visitor { /** * the colleced sum of leaf values */ - + protected int sum = 0; - + /** * Visits a non-terminal binary tree node. * * @param node the regular node */ - public void visitNode(VisitorProtocol.VisitableNode node) { + public void visitNode(VisitorProtocol.VisitableNode node) { if (node instanceof BinaryTreeNode) { - BinaryTreeNode rnode = (BinaryTreeNode) node; + BinaryTreeNode rnode = (BinaryTreeNode) node; rnode.left.accept(this); rnode.right.accept(this); } } - + /** * Visits a terminal tree node. * * @param node the leaf */ - public void visitLeaf(VisitorProtocol.VisitableNode node) { + public void visitLeaf(VisitorProtocol.VisitableNode node) { if (node instanceof BinaryTreeLeaf) { BinaryTreeLeaf leaf = (BinaryTreeLeaf) node; sum += leaf.getValue(); } } - - /** + + /** * Returns the result of the visitor's operation * * @return a string representing the sum of elemnent in the tree's leaves */ - + public String report() { return ">>> SumVisitor collected a sum of "+sum; } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/visitor/aspectj/TraversalVisitor.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/visitor/aspectj/TraversalVisitor.java index 2143cad72..eac9ecec3 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/visitor/aspectj/TraversalVisitor.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/visitor/aspectj/TraversalVisitor.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.visitor.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -17,7 +17,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.visitor.aspectj; * The Original Code is ca.ubc.cs.spl.aspectPatterns. * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * * Contributor(s): */ @@ -80,4 +80,4 @@ public class TraversalVisitor implements VisitorProtocol.Visitor { public String report() { return ">>> TraversalVisitor traversed the tree to: "+result; } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/visitor/aspectj/Visitable.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/visitor/aspectj/Visitable.java index cbf4e52b2..a43a6a0e4 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/visitor/aspectj/Visitable.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/visitor/aspectj/Visitable.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.visitor.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -17,7 +17,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.visitor.aspectj; * The Original Code is ca.ubc.cs.spl.aspectPatterns. * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * * Contributor(s): */ @@ -31,4 +31,3 @@ package ca.ubc.cs.spl.aspectPatterns.examples.visitor.aspectj; */ public interface Visitable {} - diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/visitor/aspectj/Visiting.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/visitor/aspectj/Visiting.java index 17bae11fd..223c51d7b 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/visitor/aspectj/Visiting.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/visitor/aspectj/Visiting.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.visitor.aspectj; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,11 +15,11 @@ package ca.ubc.cs.spl.aspectPatterns.examples.visitor.aspectj; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ import ca.ubc.cs.spl.aspectPatterns.patternLibrary.VisitorProtocol; @@ -33,21 +33,21 @@ import ca.ubc.cs.spl.aspectPatterns.patternLibrary.VisitorProtocol; * @version 1.1, 02/17/04 */ -public aspect Visiting extends VisitorProtocol { - - /** +public aspect Visiting extends VisitorProtocol { + + /** * Assigns the <code>VisitableNote</code> role to <code>Visitable</code> */ declare parents: Visitable implements VisitableNode; - /** + /** * Assigns the <code>Node</code> role to <code>BinaryTreeNode</code> */ declare parents: BinaryTreeNode implements Node; - /** + /** * Assigns the <code>Leaf</code> role to <code>BinaryTreeLeaf</code> */ diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/visitor/java/BinaryTreeLeaf.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/visitor/java/BinaryTreeLeaf.java index 38102d325..f73508769 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/visitor/java/BinaryTreeLeaf.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/visitor/java/BinaryTreeLeaf.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.visitor.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,15 +15,15 @@ package ca.ubc.cs.spl.aspectPatterns.examples.visitor.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** - * Implements a <i>ConcreteElement</i> of the aggregate strcuture. This is a + * Implements a <i>ConcreteElement</i> of the aggregate strcuture. This is a * terminal binary tree element (leaf). * * @author Jan Hannemann @@ -31,41 +31,41 @@ package ca.ubc.cs.spl.aspectPatterns.examples.visitor.java; * @version 1.1, 02/17/04 */ -public class BinaryTreeLeaf implements Visitable { - +public class BinaryTreeLeaf implements Visitable { + /** * the value stored in this leaf */ protected int value; - + /** * Accepts a visitor and calls <code>visitLeaf(Node) on it. * * @param visitor the NodeVisitor that is to be accepted. */ - + public void accept(BinaryTreeVisitor visitor) { visitor.visitLeaf(this); } - + /** * Creates a new <code>BinaryTreeLeaf</code> with the given value. * * @param value the value of the leaf */ - + public BinaryTreeLeaf(int value) { this.value = value; - } - - /** + } + + /** * Accessor for the leaf's value * * @return the leaf's value */ - + public int getValue() { return value; } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/visitor/java/BinaryTreeNode.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/visitor/java/BinaryTreeNode.java index 604749717..ed9768d7a 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/visitor/java/BinaryTreeNode.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/visitor/java/BinaryTreeNode.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.visitor.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -17,7 +17,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.visitor.java; * The Original Code is ca.ubc.cs.spl.aspectPatterns. * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * * Contributor(s): */ @@ -86,4 +86,4 @@ public class BinaryTreeNode implements Visitable { this.left = left; this.right = right; } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/visitor/java/BinaryTreeVisitor.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/visitor/java/BinaryTreeVisitor.java index 5ed0d22da..bd8e977a6 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/visitor/java/BinaryTreeVisitor.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/visitor/java/BinaryTreeVisitor.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.visitor.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,11 +15,11 @@ package ca.ubc.cs.spl.aspectPatterns.examples.visitor.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** @@ -30,30 +30,30 @@ package ca.ubc.cs.spl.aspectPatterns.examples.visitor.java; * @author Gregor Kiczales * @version 1.1, 02/17/04 */ - -public interface BinaryTreeVisitor { - + +public interface BinaryTreeVisitor { + /** * Visits a non-terminal binary tree node. * * @param node the node to visit */ - - public void visitNode(Visitable node); + + public void visitNode(Visitable node); /** * Visits a leaf, which is a terminal tree node. * * @param node the leaf */ - + public void visitLeaf(Visitable node); - - /** + + /** * Returns the result of the visitor's operation * * @return a string describing the result of this visitor's operation. */ - + public String report(); -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/visitor/java/Main.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/visitor/java/Main.java index 0f336e61e..1a97fe482 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/visitor/java/Main.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/visitor/java/Main.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.visitor.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -17,7 +17,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.visitor.java; * The Original Code is ca.ubc.cs.spl.aspectPatterns. * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * * Contributor(s): */ @@ -101,4 +101,4 @@ public class Main { root.accept(traversalVisitor); System.out.println(traversalVisitor.report()); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/visitor/java/SummationVisitor.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/visitor/java/SummationVisitor.java index 326775c1e..39b43c8a8 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/visitor/java/SummationVisitor.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/visitor/java/SummationVisitor.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.visitor.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,15 +15,15 @@ package ca.ubc.cs.spl.aspectPatterns.examples.visitor.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** - * Implements a <i>ConcreteVisitor</i> that collects the sum of all leaf + * Implements a <i>ConcreteVisitor</i> that collects the sum of all leaf * values in the tree. * * @author Jan Hannemann @@ -32,43 +32,43 @@ package ca.ubc.cs.spl.aspectPatterns.examples.visitor.java; */ public class SummationVisitor implements BinaryTreeVisitor { - + /** * the colleced sum of leaf values */ - + protected int sum = 0; - + /** * Visits a non-terminal binary tree node. * * @param node the regular node */ - + public void visitNode(Visitable node) { - BinaryTreeNode rnode = (BinaryTreeNode) node; + BinaryTreeNode rnode = (BinaryTreeNode) node; rnode.left.accept(this); rnode.right.accept(this); } - + /** * Visits a terminal tree node. * * @param node the leaf */ - + public void visitLeaf(Visitable node) { BinaryTreeLeaf leaf = (BinaryTreeLeaf) node; sum += leaf.getValue(); } - - /** + + /** * Returns the result of the visitor's operation * * @return a string representation of the sum of leaf values */ - + public String report() { return ">>> SummationVisitor collected a sum of: "+sum; } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/visitor/java/TraversalVisitor.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/visitor/java/TraversalVisitor.java index 24dbffb58..6f78c50b6 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/visitor/java/TraversalVisitor.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/visitor/java/TraversalVisitor.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.visitor.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,11 +15,11 @@ package ca.ubc.cs.spl.aspectPatterns.examples.visitor.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** @@ -32,40 +32,40 @@ package ca.ubc.cs.spl.aspectPatterns.examples.visitor.java; */ public class TraversalVisitor implements BinaryTreeVisitor { - - /** + + /** * contains the accumulated result */ - + protected String result = ""; - + /** * Visits a non-terminal binary tree node. * * @param node the regular node */ - + public void visitNode(Visitable node) { BinaryTreeNode rnode = (BinaryTreeNode) node; - result += "{"; + result += "{"; rnode.getLeft().accept(this); result += ","; rnode.getRight().accept(this); result += "}"; } - + /** * Visits a terminal tree node. * * @param node the leaf */ - + public void visitLeaf(Visitable node) { BinaryTreeLeaf leaf = (BinaryTreeLeaf) node; result += leaf.getValue(); } - - /** + + /** * Returns the result of the visitor's operation * * @return a string representing a traversal of the tree @@ -74,4 +74,4 @@ public class TraversalVisitor implements BinaryTreeVisitor { public String report() { return ">>> TraversalVisitor traversed the tree to: "+result; } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/visitor/java/Visitable.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/visitor/java/Visitable.java index 4db9b475d..bb6bda812 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/visitor/java/Visitable.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/examples/visitor/java/Visitable.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.examples.visitor.java; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,11 +15,11 @@ package ca.ubc.cs.spl.aspectPatterns.examples.visitor.java; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** @@ -30,14 +30,13 @@ package ca.ubc.cs.spl.aspectPatterns.examples.visitor.java; * @version 1.1, 02/17/04 */ -public interface Visitable { - +public interface Visitable { + /** * Accepts a <i>Visitor</i>. * * @param visitor the NodeVisitor that is to be accepted. */ - + public void accept(BinaryTreeVisitor visitor); } - diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/ChainOfResponsibilityException.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/ChainOfResponsibilityException.java index 752e67fb8..14dee45db 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/ChainOfResponsibilityException.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/ChainOfResponsibilityException.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.patternLibrary; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -17,7 +17,7 @@ package ca.ubc.cs.spl.aspectPatterns.patternLibrary; * The Original Code is ca.ubc.cs.spl.aspectPatterns. * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * * Contributor(s): */ @@ -44,4 +44,4 @@ public class ChainOfResponsibilityException extends RuntimeException { public ChainOfResponsibilityException(String s) { super(s); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/ChainOfResponsibilityProtocol.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/ChainOfResponsibilityProtocol.java index f21e0b883..a47b67fae 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/ChainOfResponsibilityProtocol.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/ChainOfResponsibilityProtocol.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.patternLibrary; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -17,7 +17,7 @@ package ca.ubc.cs.spl.aspectPatterns.patternLibrary; * The Original Code is ca.ubc.cs.spl.aspectPatterns. * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * * Contributor(s): */ @@ -173,4 +173,4 @@ public abstract aspect ChainOfResponsibilityProtocol { public Handler getSuccessor(Handler handler) { return ((Handler) successors.get(handler)); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/Command.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/Command.java index 03867b689..87abdcfd2 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/Command.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/Command.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.patternLibrary; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,34 +15,34 @@ package ca.ubc.cs.spl.aspectPatterns.patternLibrary; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ - + /** * This interface is implemented by <i>Command</i> objects. - * + * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/17/04 */ - -public interface Command { + +public interface Command { /** * Executes the command. * * @param receiver the object this command is manipulating. */ - + public void executeCommand(CommandReceiver receiver); /** * Queries the command's executable status. This interface method is - * optional (default: all commands are excutable); a default + * optional (default: all commands are excutable); a default * implementation is provided by the abstract CommandProtocol aspect. * * @returns a boolean indicating whether the command is excutable. diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/CommandInvoker.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/CommandInvoker.java index 0933fa84c..f73a8785b 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/CommandInvoker.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/CommandInvoker.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.patternLibrary; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,24 +15,24 @@ package ca.ubc.cs.spl.aspectPatterns.patternLibrary; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ - + /** * This interface is used by extending aspects to say what types * can be Invokers (i.e. senders of an executeCommand() call). * This role is assigned by concrete sub-aspects of the <code>CommandProtocol * </code> pattern aspect. - * + * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/17/04 - * + * * @see CommandProtocol */ - -public interface CommandInvoker { }
\ No newline at end of file + +public interface CommandInvoker { } diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/CommandProtocol.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/CommandProtocol.java index 11951abba..ef6258be2 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/CommandProtocol.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/CommandProtocol.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.patternLibrary; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,17 +15,17 @@ package ca.ubc.cs.spl.aspectPatterns.patternLibrary; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ - + import java.util.WeakHashMap; import java.util.Collection; import java.util.LinkedList; -import java.util.Iterator; +import java.util.Iterator; import ca.ubc.cs.spl.aspectPatterns.patternLibrary.Command; import ca.ubc.cs.spl.aspectPatterns.patternLibrary.CommandInvoker; @@ -33,23 +33,23 @@ import ca.ubc.cs.spl.aspectPatterns.patternLibrary.CommandReceiver; /** * This is the abstract <i>Command</i> protocol. - * + * * Note that this implementation allows only for exactly one command per * invoker. That is usually sufficient, but alternate implementations - * could account for multiple commands by using composite + * could account for multiple commands by using composite * (macro) commands (either with or without defined order). - * - * To allow for some flexibility, commands can either be explicitly + * + * To allow for some flexibility, commands can either be explicitly * set or removed by <i>Client</i>s, or this can be done via - * pointcuts. - * + * pointcuts. + * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/17/04 */ -public abstract aspect CommandProtocol { - +public abstract aspect CommandProtocol { + //////////////////////////////// // Invoker -> Command mapping // //////////////////////////////// @@ -57,43 +57,43 @@ public abstract aspect CommandProtocol { /** * stores the mapping between CommandInvokers and Commands */ - + private WeakHashMap mappingInvokerToCommand = new WeakHashMap(); - + /** * Sets a new command for an invoker * * @param invoker the object which will invoke the command * @param command the command to be set * @return the former command - */ - - public Object setCommand(CommandInvoker invoker, Command command) { - return mappingInvokerToCommand.put(invoker, command); + */ + + public Object setCommand(CommandInvoker invoker, Command command) { + return mappingInvokerToCommand.put(invoker, command); } - + /** * Removes a command from an invoker * * @param invoker the object which will no longer invoke the command * @param command the command to be removed * @return the former command - */ - - public Object removeCommand(CommandInvoker invoker) { - return setCommand(invoker, null); + */ + + public Object removeCommand(CommandInvoker invoker) { + return setCommand(invoker, null); } /** * Returns the command for an invoker * - * @param invoker the object for which to return the command + * @param invoker the object for which to return the command * @return the current command for the invoker - */ - - public Command getCommand(CommandInvoker invoker) { - return (Command) mappingInvokerToCommand.get(invoker); + */ + + public Command getCommand(CommandInvoker invoker) { + return (Command) mappingInvokerToCommand.get(invoker); } @@ -104,31 +104,31 @@ public abstract aspect CommandProtocol { /** * stores the mapping between Coammnds and Receivers */ - + private WeakHashMap mappingCommandToReceiver = new WeakHashMap(); - + /** * Sets a new receiver for a command * * @param command the command to be set - * @param receiver the object to be manipulated by the command's + * @param receiver the object to be manipulated by the command's * execute() method * @return the former receiver - */ - - public Object setReceiver(Command command, CommandReceiver receiver) { - return mappingCommandToReceiver.put(command, receiver); + */ + + public Object setReceiver(Command command, CommandReceiver receiver) { + return mappingCommandToReceiver.put(command, receiver); } - + /** * Returns the receiver for a particular command * - * @param invoker the object for which to return the command + * @param invoker the object for which to return the command * @returns the current command for the invoker - */ - - public CommandReceiver getReceiver(Command command) { - return (CommandReceiver) mappingCommandToReceiver.get(command); + */ + + public CommandReceiver getReceiver(Command command) { + return (CommandReceiver) mappingCommandToReceiver.get(command); } @@ -148,12 +148,12 @@ public abstract aspect CommandProtocol { /** - * Calls <code>executeCommand()</code> when the command is triggered. + * Calls <code>executeCommand()</code> when the command is triggered. * * @param invoker the object invoking the command - */ - - after(CommandInvoker invoker): commandTrigger(invoker) { + */ + + after(CommandInvoker invoker): commandTrigger(invoker) { Command command = getCommand(invoker); if (command != null) { CommandReceiver receiver = getReceiver(command); @@ -162,7 +162,7 @@ public abstract aspect CommandProtocol { // Do nothing: This Invoker has no associated command } } - + ////////////////////////////////// // setCommand() via PC & advice // @@ -172,7 +172,7 @@ public abstract aspect CommandProtocol { * The join points after which to set a command for an invoker. * This replaces the normally scattered <i>Invoker.add(Command)</i> calls. * The pointcut is provided in addition to the setCommand() method above, - * to allow all pattern code to be removed from concrete invokers. + * to allow all pattern code to be removed from concrete invokers. * * This PC is non-abstract, to make it optional for sub-aspcects to define * it. @@ -181,23 +181,23 @@ public abstract aspect CommandProtocol { * @param command the command to be attached to the invoker */ - protected pointcut setCommandTrigger(CommandInvoker invoker, Command command); + protected pointcut setCommandTrigger(CommandInvoker invoker, Command command); /** - * Calls <code>addCommand()</code> when a command should be set. + * Calls <code>addCommand()</code> when a command should be set. * * @param invoker the invoker to attach the command to * @param command the command to be attached to the invoker - */ - - after (CommandInvoker invoker, Command command): - setCommandTrigger(invoker, command) { + */ + + after (CommandInvoker invoker, Command command): + setCommandTrigger(invoker, command) { if (invoker != null) { setCommand(invoker, command); } else { - // If the invoker is null, the command cannot be set. - // Either ignore this case or throw an exception + // If the invoker is null, the command cannot be set. + // Either ignore this case or throw an exception } } @@ -209,9 +209,9 @@ public abstract aspect CommandProtocol { * The join points after which to remove a command from an invoker. * This replaces the normally scattered <code>Invoker.remove(Command) * </code> calls. - * + * * The pointcut is provided in addition to the <code>removeCommand() - * </code> method above, to allow all pattern code to be removed from + * </code> method above, to allow all pattern code to be removed from * concrete invokers. * * This PC is non-abstract, to make it optional for sub-aspcects to define @@ -220,20 +220,20 @@ public abstract aspect CommandProtocol { * @param invoker the invoker to remove the command from */ - protected pointcut removeCommandTrigger(CommandInvoker invoker); - + protected pointcut removeCommandTrigger(CommandInvoker invoker); + /** - * Calls <code>removeCommand()</code> when a command should be removed. + * Calls <code>removeCommand()</code> when a command should be removed. * * @param invoker the invoker to remove the command from - */ - - after(CommandInvoker invoker): removeCommandTrigger(invoker) { + */ + + after(CommandInvoker invoker): removeCommandTrigger(invoker) { if (invoker != null) { removeCommand(invoker); } else { - // If the invoker is null, the command cannot be removed. - // Either ignore this case or throw an exception + // If the invoker is null, the command cannot be removed. + // Either ignore this case or throw an exception } } @@ -243,13 +243,13 @@ public abstract aspect CommandProtocol { /** * Provides a deault implementation for the isExecutable method defined - * in the Command interface. + * in the Command interface. * * @return true (default implementation). Can be overwritten by concrete * aspects or even concrete commands. - */ + */ public boolean Command.isExecutable() { return true; - } + } } diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/CommandReceiver.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/CommandReceiver.java index 0a7f8e458..1de2006af 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/CommandReceiver.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/CommandReceiver.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.patternLibrary; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,25 +15,25 @@ package ca.ubc.cs.spl.aspectPatterns.patternLibrary; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ - + /** * This interface is used by extending aspects to say what types * can be Receivers (i.e. manipulated by a command object receiving an * executeCommand() call). * This role is assigned by concrete sub-aspects of the <code>CommandProtocol * </code> pattern aspect. - * + * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/17/04 - * + * * @see CommandProtocol */ - -public interface CommandReceiver { }
\ No newline at end of file + +public interface CommandReceiver { } diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/CompositeProtocol.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/CompositeProtocol.java index bab9e74dc..490abb937 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/CompositeProtocol.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/CompositeProtocol.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.patternLibrary; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,25 +15,25 @@ package ca.ubc.cs.spl.aspectPatterns.patternLibrary; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ - + import java.util.Enumeration; import java.util.WeakHashMap; -import java.util.Vector; +import java.util.Vector; /** - * Defines the abstract Composite design pattern.<p> - * + * Defines the abstract Composite design pattern.<p> + * * It maintains the mapping between composites and their children, defines the * Component, Composite, and Leaf roles, and implements facilities to * implements methods that work on the whole aggregate structure. * - * <p><i>This is the AspectJ version.</i><p> + * <p><i>This is the AspectJ version.</i><p> * * Each concrete subaspect does the following things: <UL> * <LI> Defines which classes are Components and Leafs @@ -46,14 +46,14 @@ import java.util.Vector; * @version 1.1, 02/06/04 */ -public abstract aspect CompositeProtocol { - +public abstract aspect CompositeProtocol { + /** - * Defines the Component role. The role is public to allow clients to + * Defines the Component role. The role is public to allow clients to * handle objects of that type. */ - - public interface Component {} + + public interface Component {} /** * Defines the Composite role. Composites are Components that can have @@ -62,7 +62,7 @@ public abstract aspect CompositeProtocol { */ protected interface Composite extends Component {} - + /** * Defines the Leaf role. Leafs are Components that can not have * children. This role is only used within the pattern context, thus it @@ -70,14 +70,14 @@ public abstract aspect CompositeProtocol { */ protected interface Leaf extends Component {} - + /** * stores the mapping between components and their children - */ + */ private WeakHashMap perComponentChildren = new WeakHashMap(); - /** + /** * Returns a vector of the children of the argument component */ @@ -89,16 +89,16 @@ public abstract aspect CompositeProtocol { } return children; } - + /** * Client-accessible method to add a new child to a composite * * @param composite the composite to add a new child to * @param component the new child to add */ - - public void addChild(Composite composite, Component component) { - getChildren(composite).add(component); + + public void addChild(Composite composite, Component component) { + getChildren(composite).add(component); } /** @@ -108,63 +108,63 @@ public abstract aspect CompositeProtocol { * @param component the child to remove */ - public void removeChild(Composite composite, Component component) { - getChildren(composite).remove(component); + public void removeChild(Composite composite, Component component) { + getChildren(composite).remove(component); } - + /** - * Client-accessible method to get an Enumeration of all children of + * Client-accessible method to get an Enumeration of all children of * a composite * * @param composite the composite to add a new child to * @param component the new child to add */ - public Enumeration getAllChildren(Component c) { - return getChildren(c).elements(); + public Enumeration getAllChildren(Component c) { + return getChildren(c).elements(); } - /** - * Defines an interface for visitors that operate on the composite + /** + * Defines an interface for visitors that operate on the composite * structure. These visitors are implemented by concrete sub-aspects * and used in the <code>recurseOperation(Component, Visitor)</code> * method. This construct is needed to allow for method forwarding: * A composite that receives a method forwards the request to all its * children. */ - - protected interface Visitor { - + + protected interface Visitor { + /** * Generic method that performs an unspecified operation on compoennts * * @param c the component to perform the operation on */ - + public void doOperation(Component c); } - /** - * Implements the method-forwarding logic: If a method is to be applied + /** + * Implements the method-forwarding logic: If a method is to be applied * to the aggregate structure, each composite forwards it to its children * * @param c the current component * @param v the visitor representing the operation to be performed */ - public void recurseOperation(Component c, Visitor v) { // This implements the logic that Composites forward + public void recurseOperation(Component c, Visitor v) { // This implements the logic that Composites forward for (Enumeration enum = getAllChildren(c); enum.hasMoreElements(); ) { // method calls to their children Component child = (Component) enum.nextElement(); v.doOperation(child); } } - - - - /** - * Defines an interface for visitors that operate on the composite + + + + /** + * Defines an interface for visitors that operate on the composite * structure. These visitors are implemented by comcrete sub-aspects * and used in the <code>recurseOperation(Component, Visitor)<>/code> * method. This construct is needed to allow for method forwarding: @@ -173,22 +173,22 @@ public abstract aspect CompositeProtocol { * * This version allows for a return value of Object type. For some odd * reason AJDT complains if this type is declared protected (as it should - * be). Note that Visitor above works fine as protected. + * be). Note that Visitor above works fine as protected. */ public interface FunctionVisitor { - + /** * Generic method that performs an unspecified operation on components * * @param c the component to perform the operation on */ - + public Object doFunction(Component c); } - - /** - * Implements the method-forwarding logic: If a method is to be applied + + /** + * Implements the method-forwarding logic: If a method is to be applied * to the aggregate structure, each composite forwards it to its children. * This version allows for a return value of Object type, effectively * enableing collecting aggregate results on the composite structure. @@ -204,6 +204,5 @@ public abstract aspect CompositeProtocol { results.add(fv.doFunction(child)); } return results.elements(); - } -} - + } +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/FlyweightProtocol.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/FlyweightProtocol.java index 9092d9675..d482e95ee 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/FlyweightProtocol.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/FlyweightProtocol.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.patternLibrary; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,42 +15,42 @@ package ca.ubc.cs.spl.aspectPatterns.patternLibrary; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ - + import java.util.Hashtable; /** - * Implements a the abstracted Flyweight design pattern. Included is the + * Implements a the abstracted Flyweight design pattern. Included is the * general creation-on-demand logic. Concrete subaspects are used to * defines the actual <i>FlyweightFactories</i>. * * Concrete subaspects need only to assign the flyweight roles and to * overwrite the <code>createFlyweight(Object)<code> method. - * + * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/11/04 */ public abstract aspect FlyweightProtocol { - - /** + + /** * stores the existing <i>Flyweight</i> by key */ private Hashtable flyweights = new Hashtable(); - /** + /** * defines the <i>Flyweight</i> role. */ protected interface Flyweight{}; - + /** * Creates a <i>Flyweight</i> for a given key. This method is called by * <code>getFlyweight(Object)</code> if the flyweight does not already @@ -61,10 +61,10 @@ public abstract aspect FlyweightProtocol { */ protected abstract Flyweight createFlyweight(Object key); - + /** * Returns the <i>Flyweight</i> for a particular key. - * If the appropriate <i>Flyweight</i> does not yet exist, it is created + * If the appropriate <i>Flyweight</i> does not yet exist, it is created * on demand. * * @param key the key identifying the particular <i>Flyweight</i> @@ -76,8 +76,8 @@ public abstract aspect FlyweightProtocol { return (Flyweight) flyweights.get(key); } else { Flyweight flyweight = createFlyweight(key); - flyweights.put(key, flyweight); + flyweights.put(key, flyweight); return flyweight; } } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/MediatorProtocol.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/MediatorProtocol.java index b676ed98b..831e26d55 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/MediatorProtocol.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/MediatorProtocol.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.patternLibrary; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,11 +15,11 @@ package ca.ubc.cs.spl.aspectPatterns.patternLibrary; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ import java.util.WeakHashMap; @@ -41,19 +41,19 @@ import java.util.Iterator; * * <li> what operations on the <i>Colleague</i> trigger <i>Mediator</i> * updates.<br> - * This is done by concretizing the <code>change(Colleague)</code> + * This is done by concretizing the <code>change(Colleague)</code> * pointcut * * <li> how to mediate <br> * this is done by concretizing - * <code>notifyMediator(Colleague, Mediator)</code> + * <code>notifyMediator(Colleague, Mediator)</code> * </ol> * * Note that in this implementation, the work of updating is a method * on the sub-aspect, not a method introduced on the <i>Mediator</i>. This * allows one class of object to be the <i>Mediator</i> in different kinds of * mediation relationships, each of which has a different updating - * behavior. + * behavior. * * @author Jan Hannemann * @author Gregor Kiczales @@ -62,19 +62,19 @@ import java.util.Iterator; public abstract aspect MediatorProtocol { - + /** * Declares the Colleague role. * Roles are modeled as (empty) interfaces. */ - - protected interface Colleague { } + + protected interface Colleague { } /** * Declares the <code>Mediator</code> role. * Roles are modeled as (empty) interfaces. */ - + protected interface Mediator { } /** @@ -82,12 +82,12 @@ public abstract aspect MediatorProtocol { * Mediator</i>s. For each <i>Colleague</i>, its <i>Mediator</i> * is stored. */ - + private WeakHashMap mappingColleagueToMediator = new WeakHashMap(); /** - * Returns the <i>Mediator</i> of + * Returns the <i>Mediator</i> of * a particular <i>Colleague</i>. Used internally. * * @param colleague the <i>Colleague</i> for which to return the mediator @@ -95,21 +95,21 @@ public abstract aspect MediatorProtocol { */ private Mediator getMediator(Colleague colleague) { - Mediator mediator = + Mediator mediator = (Mediator) mappingColleagueToMediator.get(colleague); return mediator; } - + /** - * Sets the <i>Mediator</i> for a <i>Colleague</i>. This is a method - * on the pattern aspect, not on any of the participants. + * Sets the <i>Mediator</i> for a <i>Colleague</i>. This is a method + * on the pattern aspect, not on any of the participants. * * @param colleague the <i>Colleague</i> to set a new <i>Mediator</i> for * @param mediator the new <i>Mediator</i> to set - */ - - public void setMediator(Colleague colleague, Mediator mediator) { - mappingColleagueToMediator.put(colleague, mediator); + */ + + public void setMediator(Colleague colleague, Mediator mediator) { + mappingColleagueToMediator.put(colleague, mediator); } @@ -125,8 +125,8 @@ public abstract aspect MediatorProtocol { /** * Call updateObserver to update each observer. - */ - + */ + after(Colleague c): change(c) { notifyMediator(c, getMediator(c)); } @@ -136,7 +136,7 @@ public abstract aspect MediatorProtocol { * to a <code>Colleague</code> occurs. To be concretized by sub-aspects. * * @param c the <i>Colleague</i> on which a change of interest occured - * @param m the <i>Mediator</i> to be notifed of the change + * @param m the <i>Mediator</i> to be notifed of the change */ protected abstract void notifyMediator(Colleague c, Mediator m); diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/Memento.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/Memento.java index 0acf0b5e5..3703610b9 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/Memento.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/Memento.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.patternLibrary; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,37 +15,37 @@ package ca.ubc.cs.spl.aspectPatterns.patternLibrary; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** * Declares the methods for setting and getting the state for <i>Memento</i>s. - * + * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/12/04 */ -public interface Memento { +public interface Memento { /** * Sets the state of this <i>Memento</i> give the passed state. - * - * + * + * * @param state the state to store */ - + public void setState(Object state); /** * Returns the state of this <i>Memento</i> give the passed originator. - * + * * @return the state stored by this <i>Memento</i> */ - public Object getState(); + public Object getState(); } diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/MementoException.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/MementoException.java index 8c361ed81..582919cfc 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/MementoException.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/MementoException.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.patternLibrary; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,15 +15,15 @@ package ca.ubc.cs.spl.aspectPatterns.patternLibrary; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** - * Implements an exception that occurs if an incorrect <i>Originator</i> is used + * Implements an exception that occurs if an incorrect <i>Originator</i> is used * * @author Jan Hannemann * @author Gregor Kiczales @@ -32,15 +32,15 @@ package ca.ubc.cs.spl.aspectPatterns.patternLibrary; * @see MementoProtocol */ -public class MementoException extends RuntimeException { +public class MementoException extends RuntimeException { /** * Creates a MementoException * - * @param s the error message + * @param s the error message */ - + public MementoException(String s) { super(s); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/MementoProtocol.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/MementoProtocol.java index 7697a0f58..ac328e1e1 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/MementoProtocol.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/MementoProtocol.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.patternLibrary; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,17 +15,17 @@ package ca.ubc.cs.spl.aspectPatterns.patternLibrary; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** - * Implements the abstract Memento design pattern. It defines the role of + * Implements the abstract Memento design pattern. It defines the role of * <i>Originator</i>. The <i>Memento</i> role is client-usable and as such - * defined outside this aspect. + * defined outside this aspect. * * Concrete sub-aspects overwrite the two abstract methods to define how * <i>Memento</i>s get generated and how they are used to restore the state @@ -35,14 +35,14 @@ package ca.ubc.cs.spl.aspectPatterns.patternLibrary; * @author Gregor Kiczales * @version 1.1, 02/12/04 */ - + public abstract aspect MementoProtocol { - + /** * Defines the <i>Originator</i> type. Used only internally. */ - protected interface Originator {} + protected interface Originator {} /** * Creates a <i>Memento</i> object for an <i>Originator</i> @@ -50,11 +50,11 @@ public abstract aspect MementoProtocol { * @param o the <i>Originator</i> to create a <i>Memento</i> for * @return the <i>Memento</i> storing the originator's state */ - + public abstract Memento createMementoFor(Originator o); - + /** - * Restores this <i>Originator</i> to a former state encapsulated in the + * Restores this <i>Originator</i> to a former state encapsulated in the * <i>Memento</i> passed * * @param o the <i>Originator</i> to restore @@ -62,4 +62,4 @@ public abstract aspect MementoProtocol { */ public abstract void setMemento(Originator o, Memento m); -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/ObserverProtocol.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/ObserverProtocol.java index da403022b..7ad37461e 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/ObserverProtocol.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/ObserverProtocol.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.patternLibrary; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,11 +15,11 @@ package ca.ubc.cs.spl.aspectPatterns.patternLibrary; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ import java.util.WeakHashMap; @@ -44,7 +44,7 @@ import java.util.Iterator; * * <li> how to update the observers <br> * this is done by defining a method on - * updateObserver(Subject, Observer) + * updateObserver(Subject, Observer) * </ol> * * Note that in this implementation, the work of updating is a method @@ -59,16 +59,16 @@ import java.util.Iterator; * @author Gregor Kiczales * @version 1.1, 02/13/04 */ - -public abstract aspect ObserverProtocol { - - + +public abstract aspect ObserverProtocol { + + /** * This interface is used by extending aspects to say what types * can be <i>Subject</i>s. It models the <i>Subject</i> role. */ - protected interface Subject { } + protected interface Subject { } /** @@ -84,19 +84,19 @@ public abstract aspect ObserverProtocol { * Observer</i>s. For each <i>Subject</i>, a <code>LinkedList</code> * is of its <i>Observer</i>s is stored. */ - + private WeakHashMap perSubjectObservers; /** - * Returns a <code>Collection</code> of the <i>Observer</i>s of + * Returns a <code>Collection</code> of the <i>Observer</i>s of * a particular subject. Used internally. * * @param subject the <i>subject</i> for which to return the <i>Observer</i>s * @return a <code>Collection</code> of s's <i>Observer</i>s */ - protected List getObservers(Subject subject) { + protected List getObservers(Subject subject) { if (perSubjectObservers == null) { perSubjectObservers = new WeakHashMap(); } @@ -108,42 +108,42 @@ public abstract aspect ObserverProtocol { return observers; } - + /** * Adds an <i>Observer</i> to a <i>Subject</i>. This is the equivalent of <i> - * attach()</i>, but is a method on the pattern aspect, not the - * <i>Subject</i>. + * attach()</i>, but is a method on the pattern aspect, not the + * <i>Subject</i>. * * @param s the <i>Subject</i> to attach a new <i>Observer</i> to * @param o the new <i>Observer</i> to attach - */ - - public void addObserver(Subject subject, Observer observer) { - getObservers(subject).add(observer); + */ + + public void addObserver(Subject subject, Observer observer) { + getObservers(subject).add(observer); } - + /** * Removes an observer from a <i>Subject</i>. This is the equivalent of <i> - * detach()</i>, but is a method on the pattern aspect, not the <i>Subject</i>. + * detach()</i>, but is a method on the pattern aspect, not the <i>Subject</i>. * * @param s the <i>Subject</i> to remove the <i>Observer</i> from * @param o the <i>Observer</i> to remove - */ - - public void removeObserver(Subject subject, Observer observer) { - getObservers(subject).remove(observer); + */ + + public void removeObserver(Subject subject, Observer observer) { + getObservers(subject).remove(observer); } /** * The join points after which to do the update. * It replaces the normally scattered calls to <i>notify()</i>. To be * concretized by sub-aspects. - */ - + */ + protected abstract pointcut subjectChange(Subject s); /** - * Calls <code>updateObserver(..)</code> after a change of interest to + * Calls <code>updateObserver(..)</code> after a change of interest to * update each <i>Observer</i>. * * @param subject the <i>Subject</i> on which the change occured @@ -154,14 +154,14 @@ public abstract aspect ObserverProtocol { while ( iter.hasNext() ) { updateObserver(subject, ((Observer)iter.next())); } - } - + } + /** * Defines how each <i>Observer</i> is to be updated when a change * to a <i>Subject</i> occurs. To be concretized by sub-aspects. * * @param subject the <i>Subject</i> on which a change of interest occured - * @param observer the <i>Observer</i> to be notifed of the change + * @param observer the <i>Observer</i> to be notifed of the change */ protected abstract void updateObserver(Subject subject, Observer observer); diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/PrototypeProtocol.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/PrototypeProtocol.java index 79ef7cd56..35dec7597 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/PrototypeProtocol.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/PrototypeProtocol.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.patternLibrary; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,58 +15,58 @@ package ca.ubc.cs.spl.aspectPatterns.patternLibrary; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** * Implements the abstract Prototype design pattern. It attaches a default * <code>clone()</code> method on all <i>Prototype</i> participants and * provides a static <code>cloneObject(Prototype)</clone> method. The default - * implementation of that method is to try to use the <code>clone()</code> + * implementation of that method is to try to use the <code>clone()</code> * method and, failing that, to call its protected <code> - * createCloneFor(Prototype)</code> method. Concrete subaspects can either + * createCloneFor(Prototype)</code> method. Concrete subaspects can either * overwrite none or one (or both) of the methods to tailor their * particular design pattern instance to its individual needs * * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/13/04 - */ + */ + +public abstract aspect PrototypeProtocol { -public abstract aspect PrototypeProtocol { - /** * Defines the <i>Prototype</i> role. */ - + protected interface Prototype {} - + /** * Attaches a default <code>clone()</code> method to all prototypes. * This makes use of Java's clone() mechanism that creates a deep copy * of the object in question. - * + * * @return a copy of the object */ - public Object Prototype.clone() throws CloneNotSupportedException { + public Object Prototype.clone() throws CloneNotSupportedException { return super.clone(); } - + /** * Provides a static default aspect method for cloning prototypes. * It uses the attached clone() method if possible. If not, it calls the * static <code>createCloneFor(Prototype)</code> method. - * + * * @param object the prototype object to clone * @return a copy of the object */ - - + + public Object cloneObject(Prototype object) { try { return object.clone(); @@ -74,18 +74,18 @@ public abstract aspect PrototypeProtocol { return createCloneFor(object); } } - + /** * Provides an alternative method for cases when the default - * <code>clone()</code> method fails. This method can be + * <code>clone()</code> method fails. This method can be * overwritten by concrete subaspects. In this default implementation * it return null. - * + * * @param object the prototype object to clone * @return a copy of the object, but null in this case */ - protected Object createCloneFor(Prototype object) { + protected Object createCloneFor(Prototype object) { return null; } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/ProxyProtocol.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/ProxyProtocol.java index 856a681a9..3d3b87a3f 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/ProxyProtocol.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/ProxyProtocol.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.patternLibrary; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,17 +15,17 @@ package ca.ubc.cs.spl.aspectPatterns.patternLibrary; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ -import org.aspectj.lang.JoinPoint; +import org.aspectj.lang.JoinPoint; /** - * Defines the abstracted Proxy design pattern.<p> + * Defines the abstracted Proxy design pattern.<p> * * Concrete sub-aspects define the following: <UL> * <LI> Which class(es) are <i>RealSubject</i>s @@ -38,78 +38,78 @@ import org.aspectj.lang.JoinPoint; * @author Jan Hannemann * @author Gregor Kiczales * @version 1.1, 02/17/04 - */ - -public abstract aspect ProxyProtocol { - + */ + +public abstract aspect ProxyProtocol { + /** * Defines the Subject role (used for correct typing) */ - - protected interface Subject {} - + + protected interface Subject {} + /** - * Captures all accesses to the subject that should be covered by + * Captures all accesses to the subject that should be covered by * this pattern instance. */ - - protected abstract pointcut requests(); - - /** - * Extends the <code>requests()</code> pointcut to include a + + protected abstract pointcut requests(); + + /** + * Extends the <code>requests()</code> pointcut to include a * field for the joinpoint. Used internally only. */ - - private pointcut requestsByCaller(Object caller): + + private pointcut requestsByCaller(Object caller): requests() && this(caller); /** - * Intercepts accesses to protected parts of the OutputSubject. - * If access is proxy protected, the method + * Intercepts accesses to protected parts of the OutputSubject. + * If access is proxy protected, the method * <code>handleProxyProtection(..)</code> is called instead. * * @param caller the object responsible for the protected access * @param subject the subject receiving the call */ - Object around(Object caller, Subject subject): - requestsByCaller(caller) && target(subject) { - + Object around(Object caller, Subject subject): + requestsByCaller(caller) && target(subject) { + if (! isProxyProtected(caller, subject, thisJoinPoint) ) - return proceed(caller, subject); + return proceed(caller, subject); return handleProxyProtection(caller, subject, thisJoinPoint); - } - + } + /** * Checks whether the request should be handled by the Proxy or not * * @param caller the object responsible for the protected access - * @param subject the subject receiving the call + * @param subject the subject receiving the call * @param joinPoint the joinpoint associated with the protected access * * @return true if the access is covered by the proxy, false otherwise */ - - protected abstract boolean isProxyProtected(Object caller, - Subject subject, + + protected abstract boolean isProxyProtected(Object caller, + Subject subject, JoinPoint joinPoint); /** - * For delegation: Provides an alternative return value if access - * is proxy protected. A default implementation is supplied so that + * For delegation: Provides an alternative return value if access + * is proxy protected. A default implementation is supplied so that * concrete subaspects are not forced to implement the method. * * @param caller the object responsible for the proxy protected access - * @param subject the subject receiving the call - * @param joinPoint the joinpoint associated with the proxy protected + * @param subject the subject receiving the call + * @param joinPoint the joinpoint associated with the proxy protected * access * * @return an alternative return value */ - protected Object handleProxyProtection(Object caller, - Subject subject, + protected Object handleProxyProtection(Object caller, + Subject subject, JoinPoint joinPoint) { - return null; + return null; } -} +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/SingletonProtocol.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/SingletonProtocol.java index fddd603da..e6042669f 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/SingletonProtocol.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/SingletonProtocol.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.patternLibrary; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,11 +15,11 @@ package ca.ubc.cs.spl.aspectPatterns.patternLibrary; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ import java.util.Hashtable; @@ -47,15 +47,15 @@ import java.util.Hashtable; * @author Gregor Kiczales * @version 1.1, 02/18/04 */ - + public abstract aspect SingletonProtocol { - + /** * stores the <i>Singleton</i> instances */ - - private Hashtable singletons = new Hashtable(); - + + private Hashtable singletons = new Hashtable(); + /** * Defines the <i>Singleton</i> role. It is realized as <code>public * </code> to allow for more flexibility (i.e., alternatively, types @@ -64,30 +64,30 @@ public abstract aspect SingletonProtocol { */ public interface Singleton {} - + /** * Placeholder for exceptions to the <i>Singleton</i>'s constructor - * protection. For example, non-singleton subclasses may need to + * protection. For example, non-singleton subclasses may need to * access the protected constructor of the <i>Singleton</i> normally. - * + * * An alternative implementation would be to define an interface * for singleton exceptions similar to the one above. */ - + protected pointcut protectionExclusions(); /** * Protects the <i>Singleton</i>'s constructor. Creates the unique * instance on demant and returns it instead of a new object. - * - * @return the singleton instance + * + * @return the singleton instance */ - - Object around(): call((Singleton+).new(..)) && !protectionExclusions() { - Class singleton = thisJoinPoint.getSignature().getDeclaringType(); + + Object around(): call((Singleton+).new(..)) && !protectionExclusions() { + Class singleton = thisJoinPoint.getSignature().getDeclaringType(); if (singletons.get(singleton) == null) { // How to access the static instance variable here? - singletons.put(singleton, proceed()); + singletons.put(singleton, proceed()); } return singletons.get(singleton); - } -}
\ No newline at end of file + } +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/StrategyProtocol.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/StrategyProtocol.java index 0e3291460..53aa7eb4e 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/StrategyProtocol.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/StrategyProtocol.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.patternLibrary; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -17,7 +17,7 @@ package ca.ubc.cs.spl.aspectPatterns.patternLibrary; * The Original Code is ca.ubc.cs.spl.aspectPatterns. * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * * Contributor(s): */ @@ -84,4 +84,4 @@ public abstract aspect StrategyProtocol { public Strategy getConcreteStrategy(Context c) { return (Strategy) strategyPerContext.get(c); } -}
\ No newline at end of file +} diff --git a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/VisitorProtocol.java b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/VisitorProtocol.java index b1c30546c..c27ae9c3a 100644 --- a/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/VisitorProtocol.java +++ b/docs/sandbox/ubc-design-patterns/src/ca/ubc/cs/spl/aspectPatterns/patternLibrary/VisitorProtocol.java @@ -7,7 +7,7 @@ package ca.ubc.cs.spl.aspectPatterns.patternLibrary; * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at - * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. + * either https://www.mozilla.org/MPL/ or https://aspectj.org/MPL/. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,27 +15,27 @@ package ca.ubc.cs.spl.aspectPatterns.patternLibrary; * License. * * The Original Code is ca.ubc.cs.spl.aspectPatterns. - * + * * For more details and the latest version of this code, please see: - * http://www.cs.ubc.ca/labs/spl/projects/aodps.html + * https://www.cs.ubc.ca/labs/spl/projects/aodps.html * - * Contributor(s): + * Contributor(s): */ /** - * Implements the abstracted Visitor design pattern.<p> + * Implements the abstracted Visitor design pattern.<p> * - * Intent: <i>Represents an operation to be performed on the elements of an + * Intent: <i>Represents an operation to be performed on the elements of an * object structure. Visitor lets you define a new operation without changing * the classes of the elements on which it operates</i><p> * * Note that this implementation only deals with two different kind of nodes: - * terminal and non-terminal nodes. In cases where the aggregate structure - * contains more types of nodes, this aspect cannot be used without - * modifications. <p> + * terminal and non-terminal nodes. In cases where the aggregate structure + * contains more types of nodes, this aspect cannot be used without + * modifications. <p> * * Note further that whenever the aggregate structure is unimportant, the - * additional functionality can be added in a much sipmler using + * additional functionality can be added in a much sipmler using * AspectJ's open classes mechanism (i.e., by using inter-type declarations * to implement the desired functionality). * @@ -50,11 +50,11 @@ public abstract aspect VisitorProtocol { * Defines the <i>Element</i> role. The inerface is public so that * <i>ConcreteVisitor</i>s can use the type. */ - + public interface VisitableNode {} /** - * Defines a <i>ConcreteElement</i> role for non-terminal nodes in + * Defines a <i>ConcreteElement</i> role for non-terminal nodes in * a binary tree structure. The interface is protected as it is only used * by concrete subaspects. */ @@ -62,25 +62,25 @@ public abstract aspect VisitorProtocol { protected interface Node extends VisitableNode {} /** - * Defines a <i>ConcreteElement</i> role for terminal nodes in + * Defines a <i>ConcreteElement</i> role for terminal nodes in * a tree structure. The inerface is protected as it is only used * by concrete subaspects. */ - protected interface Leaf extends VisitableNode {} - + protected interface Leaf extends VisitableNode {} + /** - * This interface is implemented by <i>ConcreteVisitor</i>s. + * This interface is implemented by <i>ConcreteVisitor</i>s. */ - + public interface Visitor { - + /** * Defines a method signature for visiting regular nodes. * * @param node the regular node to visit */ - + public void visitNode(VisitableNode node); /** @@ -99,32 +99,32 @@ public abstract aspect VisitorProtocol { public String report(); } - + /** - * Declares <code>accept(..)</code> for visitable nodes + * Declares <code>accept(..)</code> for visitable nodes * * @param visitor the visitor that is to be accepted */ - + public void VisitableNode.accept(Visitor visitor) {} - + /** - * Declares <code>accept(..)</code> for regular nodes + * Declares <code>accept(..)</code> for regular nodes * * @param visitor the visitor that is to be accepted */ - - public void Node.accept(Visitor visitor) { - visitor.visitNode(this); + + public void Node.accept(Visitor visitor) { + visitor.visitNode(this); } - + /** - * Declares <code>accept(..)</code> for leaf nodes + * Declares <code>accept(..)</code> for leaf nodes * * @param visitor the visitor that is to be accepted */ - public void Leaf.accept(Visitor visitor) { - visitor.visitLeaf(this); + public void Leaf.accept(Visitor visitor) { + visitor.visitLeaf(this); } -}
\ No newline at end of file +} diff --git a/docs/teaching/demos/oopsla2002-script.html b/docs/teaching/demos/oopsla2002-script.html index 310505196..d0017db72 100644 --- a/docs/teaching/demos/oopsla2002-script.html +++ b/docs/teaching/demos/oopsla2002-script.html @@ -1,6 +1,6 @@ <html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" -xmlns="http://www.w3.org/TR/REC-html40"> +xmlns="https://www.w3.org/TR/REC-html40"> <head> <meta http-equiv=Content-Type content="text/html; charset=windows-1252"> diff --git a/docs/teaching/exercises/README.txt b/docs/teaching/exercises/README.txt index 91c8c3e52..90f8995b3 100755 --- a/docs/teaching/exercises/README.txt +++ b/docs/teaching/exercises/README.txt @@ -67,17 +67,17 @@ It is almost certainly a good idea to hope that Java is already installed on the students' systems, but to provide two installers (windows and linux) anyway. - http://java.sun.com + https://java.sun.com You may want to also include the rest of the AspectJ installers as well, but that might be a bit of a distraction - http://aspectj.org/dl + https://aspectj.org/dl These require junit.jar. I've included a copy in with the two zip files, but they might want to be refreshed every now and again. - http://junit.org + https://junit.org ------------------------------ @@ -121,4 +121,3 @@ scripts under CVS. Since the only difference is the answers, just overwrite the extraction directory with answers.zip. - diff --git a/docs/teaching/exercises/figures_classes.svg b/docs/teaching/exercises/figures_classes.svg index 1e2587a82..bac15feda 100644 --- a/docs/teaching/exercises/figures_classes.svg +++ b/docs/teaching/exercises/figures_classes.svg @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8" ?> -<!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 20001102//EN' 'http://www.w3.org/TR/2000/CR-SVG-20001102/DTD/svg-20001102.dtd'> -<svg xmlns="http://www.w3.org/2000/svg" width="1007" height="675"> +<!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 20001102//EN' 'https://www.w3.org/TR/2000/CR-SVG-20001102/DTD/svg-20001102.dtd'> +<svg xmlns="https://www.w3.org/2000/svg" width="1007" height="675"> <rect x="148" y="14" width="148" height="108" style="fill:#ffffff; stroke:#ffffff; stroke-width:1"/> <rect x="148" y="14" width="147" height="107" style="fill:#ffffff; stroke:#000000; stroke-width:1"/> <line x1="149" y1="122" x2="296" y2="122" style="fill:#1a1a1a; stroke:#1a1a1a; stroke-width:1"/> diff --git a/docs/teaching/exercises/index.html b/docs/teaching/exercises/index.html index 5212f6e42..08f2c9f86 100644 --- a/docs/teaching/exercises/index.html +++ b/docs/teaching/exercises/index.html @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> + "https://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="https://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <!-- This file represents the Exercises for the hands-on AspectJ tutorial. It is commonly checked into CVS with identifying @@ -62,7 +62,7 @@ h3 { margin-top: 4ex; border-bottom-style: solid; border-width: 1px } <div class="presenter">Erik Hilsdale</div> <div class="presenter">Mik Kersten</div> -<div class="presenter">http://www.eclipse.com/aspectj</div> +<div class="presenter">https://www.eclipse.com/aspectj</div> <h2>Overview</h2> diff --git a/docs/teaching/exercises/pre-letter.txt b/docs/teaching/exercises/pre-letter.txt index 4833beeb5..fcfc95933 100644 --- a/docs/teaching/exercises/pre-letter.txt +++ b/docs/teaching/exercises/pre-letter.txt @@ -15,10 +15,10 @@ most we can from this tutorial, it would really help us if many of you had an AspectJ environment installed early. This message contains basic instructions on where to get some needed -tools. These instructions will not take much time. +tools. These instructions will not take much time. If you are planning to bring a laptop to the tutorial, would you -please take the time to do the steps outlined in this message? +please take the time to do the steps outlined in this message? If you're not planning to, you might want to install an AspectJ environment on your desktop anyway and try the instructions below, so @@ -32,8 +32,8 @@ Thank you, and please don't hesitate to contact us (at support@aspectj.org) if you have any questions. See you on Wednesday... --Erik Hilsdale, - Jim Hugunin, +-Erik Hilsdale, + Jim Hugunin, and the whole AspectJ Team @@ -45,13 +45,13 @@ Overview: 0. Install AspectJ 1. Download JUnit and put it on your classpath 2. Test your setup - + ------------------------------ 0. AspectJ Download the AspectJ 1.0.6 from - http://aspectj.org/dl + https://aspectj.org/dl You should definitly download and intstall the tools package and the docs package. If you plan to use JBuilder, Forte/NetBeans, Emacs, or @@ -63,11 +63,11 @@ plugin. 1. JUnit We use the JUnit framework for testing our exercises. Download JUnit -from +from - http://www.junit.org + https://www.junit.org -and place junit.jar on your CLASSPATH. +and place junit.jar on your CLASSPATH. ------------------------------ @@ -79,8 +79,8 @@ a. Create a file "Hello.java" with this class: public static void main(String[] args) { System.err.println(getHelloString()); } - public static String getHelloString() { - return "Hello, WORLD"; + public static String getHelloString() { + return "Hello, WORLD"; } } @@ -91,7 +91,7 @@ b. Compile the class with ajc and run it... Hello, WORLD c. Create a file "TestHello.java" with this class: - + public class TestHello extends junit.framework.TestCase { public TestHello(String name) { super(name); @@ -111,7 +111,7 @@ d. Compile the class with ajc and run it... .F Time: 0.01 There was 1 failure: - 1) testHello(TestHello)junit.framework.ComparisonFailure: + 1) testHello(TestHello)junit.framework.ComparisonFailure: expected:<...OOPSLA> but was:<...WORLD> at TestHello.testHello(TestHello.java:9) at TestHello.main(TestHello.java:6) |