parent
3f01d10bb2
commit
c5fe3a7777
|
@ -10,7 +10,7 @@ from point2 import Point
|
||||||
import mode2
|
import mode2
|
||||||
import mode.mini, mode.search, mode.replace, mode.which
|
import mode.mini, mode.search, mode.replace, mode.which
|
||||||
import mode.console, mode.consolemini
|
import mode.console, mode.consolemini
|
||||||
import mode.c, mode.python, mode.perl, mode.nasm, mode.sh, mode.sql
|
import mode.c, mode.python, mode.perl, mode.nasm, mode.sh, mode.sql, mode.java
|
||||||
import mode.blame, mode.diff, mode.dir
|
import mode.blame, mode.diff, mode.dir
|
||||||
import mode.xml, mode.tt, mode.css, mode.javascript, mode.html
|
import mode.xml, mode.tt, mode.css, mode.javascript, mode.html
|
||||||
import mode.text, mode.mutt
|
import mode.text, mode.mutt
|
||||||
|
@ -106,6 +106,7 @@ class Application(object):
|
||||||
'template': mode.tt.Template,
|
'template': mode.tt.Template,
|
||||||
'bds': mode.bds.BDS,
|
'bds': mode.bds.BDS,
|
||||||
'rst': mode.rst.RST,
|
'rst': mode.rst.RST,
|
||||||
|
'java': mode.java.Java,
|
||||||
}
|
}
|
||||||
|
|
||||||
# these are used in this order to determine which mode to open certain
|
# these are used in this order to determine which mode to open certain
|
||||||
|
@ -138,6 +139,7 @@ class Application(object):
|
||||||
'.tt': 'template',
|
'.tt': 'template',
|
||||||
'.css': 'css',
|
'.css': 'css',
|
||||||
'.rst': 'rst',
|
'.rst': 'rst',
|
||||||
|
'.java': 'java',
|
||||||
}
|
}
|
||||||
self.mode_detection = {
|
self.mode_detection = {
|
||||||
'python': 'python',
|
'python': 'python',
|
||||||
|
|
|
@ -0,0 +1,108 @@
|
||||||
|
/////////////////////////////////////////////////////////////////////////
|
||||||
|
import java.sql.Connection;
|
||||||
|
import java.sql.DriverManager;
|
||||||
|
import java.sql.Statement;
|
||||||
|
|
||||||
|
import java.sql.ResultSet;
|
||||||
|
import java.sql.ResultSetMetaData;
|
||||||
|
|
||||||
|
import org.hibernate.HibernateException;
|
||||||
|
import org.hibernate.Session;
|
||||||
|
import org.hibernate.SessionFactory;
|
||||||
|
import org.hibernate.cfg.Configuration;
|
||||||
|
|
||||||
|
public class HibernateUtil {
|
||||||
|
|
||||||
|
public static final SessionFactory sessionFactory;
|
||||||
|
|
||||||
|
static {
|
||||||
|
try {
|
||||||
|
// Create the SessionFactory from hibernate.cfg.xml
|
||||||
|
sessionFactory = new Configuration().configure().buildSessionFactory();
|
||||||
|
} catch (Throwable ex) {
|
||||||
|
// Make sure you log the exception, as it might be swallowed
|
||||||
|
System.err.println("Initial SessionFactory creation failed." + ex);
|
||||||
|
throw new ExceptionInInitializerError(ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static final ThreadLocal session = new ThreadLocal();
|
||||||
|
|
||||||
|
public static Session currentSession() throws HibernateException {
|
||||||
|
Session s = (Session) session.get();
|
||||||
|
// Open a new Session, if this thread has none yet
|
||||||
|
if (s == null) {
|
||||||
|
s = sessionFactory.openSession();
|
||||||
|
// Store it in the ThreadLocal variable
|
||||||
|
session.set(s);
|
||||||
|
}
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void closeSession() throws HibernateException {
|
||||||
|
Session s = (Session) session.get();
|
||||||
|
if (s != null)
|
||||||
|
s.close();
|
||||||
|
session.set(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
static Connection conn;
|
||||||
|
static Statement st;
|
||||||
|
public static void setup(String sql) {
|
||||||
|
try {
|
||||||
|
// Step 1: Load the JDBC driver.
|
||||||
|
Class.forName("org.hsqldb.jdbcDriver");
|
||||||
|
System.out.println("Driver Loaded.");
|
||||||
|
// Step 2: Establish the connection to the database.
|
||||||
|
String url = "jdbc:hsqldb:data/tutorial";
|
||||||
|
|
||||||
|
conn = DriverManager.getConnection(url, "sa", "");
|
||||||
|
System.out.println("Got Connection.");
|
||||||
|
|
||||||
|
st = conn.createStatement();
|
||||||
|
st.executeUpdate(sql);
|
||||||
|
} catch (Exception e) {
|
||||||
|
System.err.println("Got an exception! ");
|
||||||
|
e.printStackTrace();
|
||||||
|
System.exit(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public static void checkData(String sql) {
|
||||||
|
try {
|
||||||
|
HibernateUtil.outputResultSet(st
|
||||||
|
.executeQuery(sql));
|
||||||
|
// conn.close();
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void outputResultSet(ResultSet rs) throws Exception{
|
||||||
|
ResultSetMetaData metadata = rs.getMetaData();
|
||||||
|
|
||||||
|
int numcols = metadata.getColumnCount();
|
||||||
|
String[] labels = new String[numcols];
|
||||||
|
int[] colwidths = new int[numcols];
|
||||||
|
int[] colpos = new int[numcols];
|
||||||
|
int linewidth;
|
||||||
|
|
||||||
|
for (int i = 0; i < numcols; i++) {
|
||||||
|
labels[i] = metadata.getColumnLabel(i + 1); // get its label
|
||||||
|
System.out.print(labels[i]+" ");
|
||||||
|
}
|
||||||
|
System.out.println("------------------------");
|
||||||
|
|
||||||
|
while (rs.next()) {
|
||||||
|
for (int i = 0; i < numcols; i++) {
|
||||||
|
Object value = rs.getObject(i + 1);
|
||||||
|
if(value == null){
|
||||||
|
System.out.print(" ");
|
||||||
|
}else{
|
||||||
|
System.out.print(value.toString().trim()+" ");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
System.out.println(" ");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -30,7 +30,7 @@ class CGrammar(Grammar):
|
||||||
RegionRule(r'comment', '/\*', Grammar, '\*/'),
|
RegionRule(r'comment', '/\*', Grammar, '\*/'),
|
||||||
PatternRule(r'comment', r'//.*$'),
|
PatternRule(r'comment', r'//.*$'),
|
||||||
|
|
||||||
PatternRule(r'keyword', r"(?:auto|break|case|char|const|continue|default|double|do|else|enum|extern|float|for|goto|if|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|union|unsigned|void|volatile|while)(?![a-zA-z_])"),
|
PatternRule(r'keyword', r"(?:auto|break|case|char|const|continue|default|double|do|else|enum|extern|float|for|goto|if|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|union|unsigned|void|volatile|while)(?![a-zA-Z_])"),
|
||||||
PatternRule(r'label', r'[a-zA-Z_][a-zA-Z0-9_]*(?=:)'),
|
PatternRule(r'label', r'[a-zA-Z_][a-zA-Z0-9_]*(?=:)'),
|
||||||
PatternRule(r'structname', r'(?<=struct ) *[a-zA-Z_][a-zA-Z0-9_]*'),
|
PatternRule(r'structname', r'(?<=struct ) *[a-zA-Z_][a-zA-Z0-9_]*'),
|
||||||
PatternRule(r'enumname', r'(?<=enum ) *[a-zA-Z_][a-zA-Z0-9_]*'),
|
PatternRule(r'enumname', r'(?<=enum ) *[a-zA-Z_][a-zA-Z0-9_]*'),
|
||||||
|
|
|
@ -0,0 +1,64 @@
|
||||||
|
import color, mode2, tab2
|
||||||
|
from lex3 import Grammar, PatternRule, RegionRule
|
||||||
|
from mode.python import StringGrammar
|
||||||
|
from mode.c import CTabber
|
||||||
|
|
||||||
|
class JavaGrammar(Grammar):
|
||||||
|
rules = [
|
||||||
|
PatternRule(r'package', r'(?<=import ) *[a-zA-Z0-9_.*]+'),
|
||||||
|
|
||||||
|
RegionRule(r'comment', '/\*', Grammar, '\*/'),
|
||||||
|
PatternRule(r'comment', r'//.*$'),
|
||||||
|
|
||||||
|
PatternRule(r'keyword', r"(?:abstract|assert|boolean|break|byte|case|catch|char|class|continue|default|double|do|else|extends|finally|final|float|for|if|implements|import|instanceof|int|long|new|private|protected|public|return|short|static|switch|super|synchronized|throws|throw|try|void|while)(?![a-zA-Z_])"),
|
||||||
|
PatternRule(r'label', r'[a-zA-Z_][a-zA-Z0-9_]*(?=:)'),
|
||||||
|
|
||||||
|
PatternRule(r'builtin', r"(?:null|true|false|this)"),
|
||||||
|
PatternRule(r'identifier', r"[a-zA-Z_][a-zA-Z0-9_]*"),
|
||||||
|
PatternRule(r"unop", r"\+=|-=|\*=|/=|//=|%=|&=\|\^=|>>=|<<=|\*\*="),
|
||||||
|
PatternRule(r'binop', r"\+|<>|<<|<=|<|-|>>|>=|>|\*\*|&|\*|\||/|\^|==|//|~|!=|%"),
|
||||||
|
|
||||||
|
PatternRule(r"delimiter", r"->|\.|\(|\)|\[|\]|{|}|@|,|:|`|;|=|\?"),
|
||||||
|
|
||||||
|
PatternRule(r"integer", r"(?:0(?![x0-9])|[1-9][0-9]*|0[0-7]+|0[xX][0-9a-fA-F]+)[lL]?"),
|
||||||
|
PatternRule(r"float", r"[0-9]+\.[0-9]*|\.[0-9]+|(?:[0-9]|[0-9]+\.[0-9]*|\.[0-9]+)[eE][\+-]?[0-9]+"),
|
||||||
|
RegionRule(r'string', '"', StringGrammar, '"'),
|
||||||
|
PatternRule(r'char', r"'.'|'\\.'|'\\[0-7]{3}'"),
|
||||||
|
PatternRule(r"eol", r"\n$"),
|
||||||
|
]
|
||||||
|
|
||||||
|
class Java(mode2.Fundamental):
|
||||||
|
#tabbercls = CTabber
|
||||||
|
grammar = JavaGrammar
|
||||||
|
opentokens = ('delimiter',)
|
||||||
|
opentags = {'(': ')', '[': ']', '{': '}'}
|
||||||
|
closetokens = ('delimiter',)
|
||||||
|
closetags = {')': '(', ']': '[', '}': '{'}
|
||||||
|
colors = {
|
||||||
|
'comment': ('red', 'default'),
|
||||||
|
'comment.start': ('red', 'default'),
|
||||||
|
'comment.end': ('red', 'default'),
|
||||||
|
'comment.null': ('red', 'default'),
|
||||||
|
|
||||||
|
'package': ('blue', 'default'),
|
||||||
|
'label': ('magenta', 'default'),
|
||||||
|
'keyword': ('cyan', 'default'),
|
||||||
|
'function': ('blue', 'default'),
|
||||||
|
'builtin': ('magenta', 'default'),
|
||||||
|
|
||||||
|
'char': ('green', 'default'),
|
||||||
|
'string.start': ('green', 'default'),
|
||||||
|
'string.octal': ('green', 'default'),
|
||||||
|
'string.escaped': ('green', 'default'),
|
||||||
|
'string.null': ('green', 'default'),
|
||||||
|
'string.end': ('green', 'default'),
|
||||||
|
'integer': ('green', 'default'),
|
||||||
|
'float': ('green', 'default'),
|
||||||
|
}
|
||||||
|
def __init__(self, w):
|
||||||
|
mode2.Fundamental.__init__(self, w)
|
||||||
|
self.add_bindings('close-paren', (')',))
|
||||||
|
self.add_bindings('close-brace', ('}',))
|
||||||
|
self.add_bindings('close-bracket', (']',))
|
||||||
|
def name(self):
|
||||||
|
return "Java"
|
Loading…
Reference in New Issue