81 lines
2.7 KiB
Batchfile
81 lines
2.7 KiB
Batchfile
@echo off
|
|
setlocal EnableDelayedExpansion
|
|
|
|
set BASE=%~dp0
|
|
set JAVAC="C:\Program Files\Eclipse Adoptium\jdk-17.0.7.7-hotspot\bin\javac.exe"
|
|
set JAVA="C:\Program Files\Eclipse Adoptium\jdk-17.0.7.7-hotspot\bin\java.exe"
|
|
set LOG=%BASE%output.log
|
|
|
|
echo Design Patterns - Compile and Run > "%LOG%"
|
|
echo Java: 17.0.7 (Eclipse Temurin) >> "%LOG%"
|
|
echo ================================ >> "%LOG%"
|
|
|
|
:: Create output dirs
|
|
for %%P in (adapter bridge composite decorator facade flyweight proxy) do (
|
|
if not exist "%BASE%out\%%P" mkdir "%BASE%out\%%P"
|
|
)
|
|
|
|
:: Function-like subroutine to compile a package
|
|
:: Usage: CALL :compile_pkg <package> <relative_src_dir>
|
|
|
|
:: --- ADAPTER ---
|
|
echo. >> "%LOG%"
|
|
echo === ADAPTER === >> "%LOG%"
|
|
set FILES=
|
|
for %%f in ("%BASE%02-structural\adapter\*.java") do set FILES=!FILES! "%%f"
|
|
%JAVAC% -d "%BASE%out\adapter" !FILES! >> "%LOG%" 2>&1
|
|
if not errorlevel 1 (%JAVA% -cp "%BASE%out\adapter" adapter.Main >> "%LOG%" 2>&1)
|
|
|
|
:: --- BRIDGE ---
|
|
echo. >> "%LOG%"
|
|
echo === BRIDGE === >> "%LOG%"
|
|
set FILES=
|
|
for %%f in ("%BASE%02-structural\bridge\*.java") do set FILES=!FILES! "%%f"
|
|
%JAVAC% -d "%BASE%out\bridge" !FILES! >> "%LOG%" 2>&1
|
|
if not errorlevel 1 (%JAVA% -cp "%BASE%out\bridge" bridge.Main >> "%LOG%" 2>&1)
|
|
|
|
:: --- COMPOSITE ---
|
|
echo. >> "%LOG%"
|
|
echo === COMPOSITE === >> "%LOG%"
|
|
set FILES=
|
|
for %%f in ("%BASE%02-structural\composite\*.java") do set FILES=!FILES! "%%f"
|
|
%JAVAC% -d "%BASE%out\composite" !FILES! >> "%LOG%" 2>&1
|
|
if not errorlevel 1 (%JAVA% -cp "%BASE%out\composite" composite.Main >> "%LOG%" 2>&1)
|
|
|
|
:: --- DECORATOR ---
|
|
echo. >> "%LOG%"
|
|
echo === DECORATOR === >> "%LOG%"
|
|
set FILES=
|
|
for %%f in ("%BASE%02-structural\decorator\*.java") do set FILES=!FILES! "%%f"
|
|
%JAVAC% -d "%BASE%out\decorator" !FILES! >> "%LOG%" 2>&1
|
|
if not errorlevel 1 (%JAVA% -cp "%BASE%out\decorator" decorator.Main >> "%LOG%" 2>&1)
|
|
|
|
:: --- FACADE ---
|
|
echo. >> "%LOG%"
|
|
echo === FACADE === >> "%LOG%"
|
|
set FILES=
|
|
for %%f in ("%BASE%02-structural\facade\*.java") do set FILES=!FILES! "%%f"
|
|
%JAVAC% -d "%BASE%out\facade" !FILES! >> "%LOG%" 2>&1
|
|
if not errorlevel 1 (%JAVA% -cp "%BASE%out\facade" facade.Main >> "%LOG%" 2>&1)
|
|
|
|
:: --- FLYWEIGHT ---
|
|
echo. >> "%LOG%"
|
|
echo === FLYWEIGHT === >> "%LOG%"
|
|
set FILES=
|
|
for %%f in ("%BASE%02-structural\flyweight\*.java") do set FILES=!FILES! "%%f"
|
|
%JAVAC% -d "%BASE%out\flyweight" !FILES! >> "%LOG%" 2>&1
|
|
if not errorlevel 1 (%JAVA% -cp "%BASE%out\flyweight" flyweight.Main >> "%LOG%" 2>&1)
|
|
|
|
:: --- PROXY ---
|
|
echo. >> "%LOG%"
|
|
echo === PROXY === >> "%LOG%"
|
|
set FILES=
|
|
for %%f in ("%BASE%02-structural\proxy\*.java") do set FILES=!FILES! "%%f"
|
|
%JAVAC% -d "%BASE%out\proxy" !FILES! >> "%LOG%" 2>&1
|
|
if not errorlevel 1 (%JAVA% -cp "%BASE%out\proxy" proxy.Main >> "%LOG%" 2>&1)
|
|
|
|
echo. >> "%LOG%"
|
|
echo [DONE] >> "%LOG%"
|
|
|
|
notepad "%LOG%"
|