java/ch/wlkl/javaExamples/ExUtil.java

/*
 * ExUtil.java
 *
 * Created on 28. Dezember 2003, 18:25
 */

/**
 * 
 * @author walter
 */
package ch.wlkl.javaExamples;

import java.util.*;
import java.util.jar.*;
import java.util.zip.*;
import java.text.*;
import java.io.*;

public class ExUtil {
    Java.Graf2 g = new Java().new Graf2(1, 3);

    void set() {
        Set hs = new HashSet();
        for (int i = 0; i < 3; i++)
            System.out.println("add1 " + hs.add(new Integer(1)) + ", size "
                    + hs.size());
        hs.add("eins");
        hs.add(new Float(1.0 / 3));
        hs.add(new Date());
        for (int i = 3; i < 6; i++)
            hs.add(new Integer(i));
        int i = 0;
        System.out.println("set has size " + hs.size() + ", and looks like "
                + hs);
        for (Iterator it = hs.iterator(); it.hasNext(); i++)
            System.out.println("ele " + i + ": " + it.next());
    }

    void map() {
        Map mp = new HashMap();
        mp.put(new Integer(0), "Null!");
        mp.put(new Integer(1), "eins");
        mp.put(new Integer(2), "zwei");
        System.out.println("map has size " + mp.size() + ", and looks like "
                + mp);
        int i = 0;
        Object obj;
        for (Iterator it = mp.keySet().iterator(); it.hasNext(); i++)
            System.out.println("ele " + i + ": " + (obj = it.next()) + " => "
                    + mp.get(obj));
        System.out.println("9 => " + mp.get(new Integer(9)));
    }

    void properties() {
        System.getProperties().list(System.out);
        System.out.println("System.getProperties().get(user.dir) "
                + System.getProperties().get("user.dir"));
    }

    void log() {
        class LT {
            int id = 0;

            void lt(java.util.logging.Logger log, String t) {
                // System.out.println("LT.lt " + ++id + ": " + t + ": info
                // warning severe");
                log.info("info " + ++id + ": " + t);
                log.warning("warning " + ++id + ": " + t);
                log.severe("severe " + ++id + ": " + t + " from " + log);
            }
        }
        LT lt = new LT();
        java.util.logging.Logger log = java.util.logging.Logger
                .getLogger("log");
        lt.lt(log, "log with default Level " + log.getLevel());
        log.setLevel(java.util.logging.Level.WARNING);
        lt.lt(log, "log with warning Level " + log.getLevel());
        java.util.logging.Logger elf = java.util.logging.Logger
                .getLogger("log.eins.elf");
        lt.lt(elf, "log.eins.elf with default Level " + elf.getLevel());
        log.setLevel(java.util.logging.Level.SEVERE);
        lt.lt(elf, "log.eins.elf with log severe, elf default Level "
                + elf.getLevel());
        elf.setLevel(java.util.logging.Level.INFO);
        lt.lt(elf, "log.eins.elf with info Level " + elf.getLevel());
    }

    int calFlds[] = new int[] { Calendar.MILLISECOND, Calendar.SECOND,
            Calendar.MINUTE, Calendar.HOUR_OF_DAY, Calendar.DAY_OF_MONTH,
            Calendar.MONTH, Calendar.YEAR };

    SimpleDateFormat f = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss.SSS");

    void setFirstIn(Calendar cal, int fld) {
        for (int x = 0;; x++) {
            System.out.println(" setFirst " + x + ": "
                    + f.format(cal.getTime()));
            if (calFlds[x] == fld)
                break;
            cal.set(calFlds[x], cal.getMinimum(calFlds[x]));
        }
    }

    void setLastIn(Calendar cal, int fld) {
        setFirstIn(cal, fld);
        cal.add(fld, 1);
        System.out.println(" setLast add " + f.format(cal.getTime()));
        cal.add(cal.MILLISECOND, -1);
        System.out.println(" setLast sub " + f.format(cal.getTime()));
    }

    void calendar() throws Exception {
        Calendar cal = Calendar.getInstance();
        System.out.println("cal " + cal);
        System.out.println(" now       " + f.format(cal.getTime()));
        Thread.sleep(23);
        cal = Calendar.getInstance();
        System.out.println(" now sleep " + f.format(cal.getTime()));
        cal.clear(cal.MINUTE);
        System.out.println(" clear min " + f.format(cal.getTime()));
        cal.clear(cal.DAY_OF_MONTH);
        System.out.println(" clear day " + f.format(cal.getTime()));
        cal = Calendar.getInstance();
        setFirstIn(cal, cal.YEAR);
        System.out.println(" first yea " + f.format(cal.getTime()));
        cal = Calendar.getInstance();
        setLastIn(cal, cal.DAY_OF_MONTH);
        System.out.println(" last dayM " + f.format(cal.getTime()));
        cal = Calendar.getInstance();
        setLastIn(cal, cal.MONTH);
        System.out.println(" last mon  " + f.format(cal.getTime()));
        cal = Calendar.getInstance();
        setLastIn(cal, cal.YEAR);
        System.out.println(" last year " + f.format(cal.getTime()));
    }

    void jarList(String nam, int fileReads) throws java.io.IOException {
        JarFile jf = new JarFile(nam);
        long ix = 1;
        StringBuffer b1 = new StringBuffer();
        StringBuffer b2 = new StringBuffer();
        DecimalFormat nf = new DecimalFormat("0000000");
        for (java.util.Enumeration en = jf.entries(); en.hasMoreElements(); ix++) {
            JarEntry je = (JarEntry) en.nextElement();
            b1.setLength(0);
            b2.setLength(0);
            System.out.println(nf.format(ix, b1, new FieldPosition(
                    NumberFormat.INTEGER_FIELD))
                    + (je.isDirectory() ? " dir " : " fil ")
                    + nf.format(je.getSize(), b2, new FieldPosition(
                            NumberFormat.INTEGER_FIELD)) + "\t" + je.getName());
            if (ix < fileReads && !je.getName().endsWith(".class")) {
                BufferedReader br = new BufferedReader(new InputStreamReader(jf
                        .getInputStream(je)));
                String li;
                while ((li = br.readLine()) != null) {
                    System.out.println(li);
                }
                br.close();
            }
        }
    }

    int crcTable[] = null;

    int[] getCrcTable() {
        if (crcTable != null)
            return crcTable;
        crcTable = new int[256];
        for (int n = 0; n < 256; n++) {
            int c = n;
            for (int k = 0; k < 8; k++) {
                if ((c & 1) == 1) {
                    c = (0xedb88320 ^ (c >>> 1)) & 0xffffffff;
                } else {
                    c = c >>> 1;
                }
            }
            crcTable[n] = c;
        }
        return crcTable;
    }

    int crcUpd(int crc, int by) {
        crc = (crc ^ 0xffffffff); //  & 0xffffffffL;
        crc = getCrcTable()[(int) ((crc ^ by) & 0xff)] ^ (crc >>> 8);
        return (crc ^ 0xffffffff); // & 0xffffffffL;
    }

    void crc(int str) {
        CRC32 crc = new CRC32();
        crc.reset();
        Adler32 adler = new Adler32();
        adler.reset();
        int mc = 0;
        String m = "reset          ";
        for (int i = 0; i < 20; str++, i++) {
            System.out.println(m + " crc 0x" + Long.toHexString(crc.getValue())
                    + " my 0x" + Integer.toHexString(mc) + "=" + mc
                    + " adler 0x" + Long.toHexString(adler.getValue()));
            m = "update(" + str + "=0x" + Integer.toHexString(str) + ")";
            crc.update(str);
            adler.update(str);
            mc = crcUpd(mc, str);
        }
        for (int i = 0; i < 17; i++)
            System.out.println("0x" + Integer.toHexString(i) + " - 0x"
                    + Integer.toHexString(-i) + " = " + i);
        for (int i = Integer.MAX_VALUE; i > 4; i /= 2)
            System.out.println("0x" + Integer.toHexString(i) + " - 0x"
                    + Integer.toHexString(-i) + " = " + i);

    }

    public void localeProps() throws Exception {
        Locale def = Locale.getDefault();
        Locale[] locs = { def,
                new Locale(def.getLanguage(), def.getCountry(), "0"),
                new Locale(def.getLanguage(), def.GERMANY.getCountry()) };
        for (int lx = 0; lx < locs.length; lx++) {
            System.out.println("locale " + locs[lx]);
            String pckg = ExUtil.class.getPackage() == null ? "" : ExUtil.class
                    .getPackage().getName()
                    + ".";
            ResourceBundle bu = PropertyResourceBundle.getBundle(Java
                    .packagePrefix()
                    + "props", locs[lx]);
            for (int i = 0; i <= 8; i++)
                try {
                    System.out.println("getString(" + i + ") = "
                            + bu.getString(String.valueOf(i)));
                } catch (Exception e) {
                    System.out.println("getString(" + i + ") Exception " + e);
                }
        }
        Locale loc = new Locale(def.getLanguage(), def.getCountry(), "0");
    }

    public static void main(String[] args) {
        // new Java(args, new String [] {"jarList", "d:\\java\\heute.jar", "8",
        // "set", "map", "properties"}).invokeMethods(new ExUtil());
        int i = -14;
        long l = -17;
        System.out.println(i + " l " + (long) i + " i " + (int) l);
        new Java(args, new String[] { "crc", "192" }).invokeMethods(new ExUtil());
    }

}