Java Java 5 Enum HIbernate映射

import org.hibernate.HibernateException;
import org.hibernate.usertype.ParameterizedType;
import org.hibernate.usertype.UserType;
import java.io.Serializable;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Types;
import java.util.Properties;

/** 
* This class implements the Type that will be used in the hbm file, notice that 
* the JavaEnumToString & StringToJavaEnum implementation isn't provided 
* (all they do is to convert Enum<->String in a consistent way, same goes for 
* StringUtils (replaceable with apache commons StringUtils).
*/
public class JavaEnumUserType implements UserType, ParameterizedType {

	private static final int[] SQL_TYPE = new int[]{Types.VARCHAR};

	private Class<? extends Enum> enumClass;


	private static JavaEnumToString javaEnumToString = new JavaEnumToString();

	private static StringToJavaEnum stringToJavaEnum = new StringToJavaEnum();

	public void setParameterValues(Properties parameters) {
		String enumClassName = parameters.getProperty("enumClass");
		try {
			enumClass = Class.forName(enumClassName).asSubclass(Enum.class);
		} catch (ClassNotFoundException e) {
			throw new HibernateException("Class " + enumClassName + " not found ", e);
		}
	}

	public Object assemble(Serializable cached, Object owner)
			throws HibernateException {
		return cached;
	}

	public Object deepCopy(Object value) throws HibernateException {
		return value;
	}

	public Serializable disassemble(Object value) throws HibernateException {
		return (Enum) value;
	}

	public boolean equals(Object x, Object y) throws HibernateException {
		return x == y;
	}

	public int hashCode(Object x) throws HibernateException {
		return x.hashCode();
	}

	public boolean isMutable() {
		return false;
	}

	public Object nullSafeGet(ResultSet rs, String[] names, Object owner) throws HibernateException, SQLException {
		String value = rs.getString(names[0]);
		if (rs.wasNull() || StringUtils.isNullOrEmpty(value)) {
			return null;
		}
		return stringToJavaEnum.doConvert(value.trim(), enumClass);
	}

	public void nullSafeSet(PreparedStatement st, Object value, int index) throws HibernateException, SQLException {
		if (value == null) {
			st.setNull(index, Types.VARCHAR);
		} else {
			String stringValue = javaEnumToString.doConvert((Enum) value);
			st.setString(index, stringValue);
		}
	}

	public Object replace(Object original, Object target, Object owner)
			throws HibernateException {
		return original;
	}

	public Class returnedClass() {
		return enumClass;
	}

	public int[] sqlTypes() {
		return SQL_TYPE;
	}

}

// For example the following bean:

public class DummyBean{
 
  private DummyEnum dummyProp; 

  public DummyEnum getDummyProp() {
    return dummyProp;
  }

  public void setPageDescriptor(DummyEnum _dummyProp) {
    this.dummyProp = _dummyProp;
  }

}

// will be mapped in this fashion:

<hibernate-mapping>
  <class name="com.dummy.DummyBean" table="DUMMY_TABLE">

   <property name="dummyProp" column="DUMMY_PROP">
    <type name="com.dummy.JavaEnumUserType">
      <param name="enumClass">com.dummy.DummyEnum</param>
    </type>
   </property>
</hibernate-mapping>

Java Java中的IBAction

public class JController {

public void sayHello(NSObject sender) {
	System.out.println("Hello form java");
}

}

Java 迭代地图 - 转储地图

Iterator it = mp.entrySet().iterator();
    while (it.hasNext()) {
        Map.Entry pairs = (Map.Entry)it.next();
        System.out.println(pairs.getKey() + " = " + pairs.getValue());

Java 迭代收集

ArrayList a_list = new ArrayList ();
 
  for (Iterator it = a_list.iterator (); it.hasNext (); ) {
    Object o = it.next ();
  }

Java Java Collection实用程序

public class CollectionInitUtils {

    public static <T> T[] ar(final T... ts) {
        return ts;
    }

    public static <T> Set<T> set(final T... ts) {
        return new HashSet<T>(Arrays.asList(ts));
    }

    public static <K, V> Map<K, V> zipMap(final K[] keys, final V[] values) {
        final Map<K, V> res = new HashMap<K, V>();
        for (int i = 0; i < keys.length; i++) {
            res.put(keys[i], values[i]);
        }
        return res;
    }
}

Java 使用CountDownLatch协调Runnable任务

ExecutorService executorService = Executors.newFixedThreadPool(5);
        int tasksCount = 10;
        final CountDownLatch latch = new CountDownLatch(tasksCount);
        for (int i = 0; i < tasksCount; i++ ) {
            executorService.execute(new Runnable() {
                public void run() {
                    try {
                        // Do some work;
                    } finally {
                        latch.countDown();
                    }
                }
            });
        }
        try {
            latch.await();
        } catch (InterruptedException e) {
            // todo >> handle exception
        }
        // All done!
        // Do some more work
    }

Java Java堆和堆栈大小增加

java -Xss32768k -Xms128M -Xmx512M -jar myfile.jar

Java 合并排序功能

public static void MergeSort(int[] array) {
		if(array.length>1){
			int elementsInA1=array.length/2;
			int elementsInA2=elementsInA1;
			if((array.length%2)==1)
				elementsInA2+=1;
				
			int arr1[]=new int[elementsInA1];
			int arr2[]=new int[elementsInA2];
			
			for(int i=0; i<elementsInA1; i++)
				arr1[i]=array[i];
				
			for(int i=elementsInA1; i<elementsInA1+elementsInA2; i++)
				arr2[i-elementsInA1]=array[i];
				
			MergeSort(arr1);
			
			MergeSort(arr2);
			
			
			int i=0, j=0, k=0;
			
			while(arr1.length!=j && arr2.length!=k){
				if(arr1[j]<=arr2[k]) {
					array[i]=arr1[j];
					j++;
				}else{
					array[i]=arr2[k];
					k++;
				}
				i++;
			}
			
			while(arr1.length!=j){
				array[i]=arr1[j];
				i++;
				j++;
			}
			while(arr2.length!=k){
				array[i]=arr2[k];
				i++;
				k++;
			}
		}
	}

Java Java VM内存大小

java -Xms256M -Xmx1024M

would set the min size to 256MB and the max size to 1024MB.

Java 使用来自maven的花岗岩发电机从Java实体生成Actionscript VO

<plugin>
			  <groupId>org.apache.maven.plugins</groupId>
			  <artifactId>maven-antrun-plugin</artifactId>
			  <executions>
			    <execution>
			      <id>generate-as3</id>
			      <phase>compile</phase>
			      <configuration>
			        <tasks>
			          <taskdef name="gas3" classname="org.granite.generator.ant.AntJavaAs3Task" />
			          <gas3 outputdir="${project.build.directory}/classes/as3">
			               	<!-- 
			                entitytemplate="${basedir}/gen-templates/as3/entity.gsp"
			                entitybasetemplate="${basedir}/gen-templates/as3/entityBase.gsp" -->
			               	<classpath>
                				<pathelement location="${project.build.directory}/classes"/>
            				</classpath>
				            <fileset dir="${project.build.directory}/classes">
				                <include name="com/cybercomgroup/sio/ejb3/entity/*.class"/>
				                <!--exclude name="com/cybercomgroup/sio/ejb3/entity/BaseEntity.class"/-->
				            </fileset>
			          </gas3>
			        </tasks>
			      </configuration>
			      <goals>
			        <goal>run</goal>
			      </goals>
			    </execution>
			  </executions>
			  <dependencies>
			    <dependency>
			      <groupId>org.granite</groupId>
			      <artifactId>gas3</artifactId>
			      <version>1.1.0</version>
			    </dependency>
			    <dependency>
			      <groupId>org.granite</groupId>
			      <artifactId>granite-generator</artifactId>
			      <version>1.1.0</version>
			    </dependency>			    
			    <dependency>
			      <groupId>groovy</groupId>
			      <artifactId>groovy-all</artifactId>
			      <version>1.5.6</version>
			    </dependency>			    
				<dependency>
					<groupId>com.cybercomgroup.sio</groupId>
					<artifactId>sio-util</artifactId>
					<version>2.0-SNAPSHOT</version>
				</dependency>			
				<dependency>
				    <groupId>antlr</groupId>
				    <artifactId>antlr</artifactId>
				    <version>2.7.6</version>
				</dependency>									
				<dependency>
				    <groupId>asm</groupId>
				    <artifactId>asm-all</artifactId>
				    <version>2.2</version>
				</dependency>	
				<dependency>
					<groupId>commons-lang</groupId>
					<artifactId>commons-lang</artifactId>
					<version>2.3</version>
				</dependency>	
				<dependency>
					<groupId>org.hibernate</groupId>
				    	<artifactId>hibernate-commons-annotations</artifactId>
				      	<version>3.3.0.ga</version>
				        <exclusions>
				                <exclusion>
				                        <groupId>asm</groupId>
				                        <artifactId>asm</artifactId>
				                </exclusion>
				                <exclusion>
				                        <groupId>asm</groupId>
				                        <artifactId>asm-attrs</artifactId>
				                </exclusion>                
				        </exclusions>				      	
				</dependency>							 			 			    
			  </dependencies>
			</plugin>