( for(EntityRef er: entities) )
----------------------------------------------------------------------------------------------------public enum Type {
INTEGER, REAL, STRING;
}
List<Property> property = new ArrayList<Property>();
.
.
.
Property[] p = (Property[])property.toArray(new Property[property.size()]);
return new Entity(name, p);
return new Entity(name, properties.toArray(new Property[]{}));
----------------------------------------------------------------------------------------------------line.matches(IDENT_REGEX)
package sk.tuke.magsa.personalistika.dao_impl;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.ResultSet;
import sk.tuke.magsa.framework.CRUDDaoImpl;
import sk.tuke.magsa.framework.ValidatorException;
import sk.tuke.magsa.framework.ConnectionPool;
import sk.tuke.magsa.personalistika.entity.Oddelenie;
import sk.tuke.magsa.personalistika.dao.OddelenieDao;
public class OddelenieDaoImpl extends CRUDDaoImpl<Oddelenie> implements OddelenieDao {
public OddelenieDaoImpl(ConnectionPool pool) {
super(pool);
}
protected PreparedStatement prepareInsertStatement(Connection connection, Oddelenie object)
throws SQLException {
String query = "INSERT INTO Oddelenie (nazov, kod, poschodie) VALUES (?, ?, ?)";
PreparedStatement pstm = connection.prepareStatement(query);
pstm.setString(1, object.getNazov());
pstm.setString(2, object.getKod());
pstm.setInt(3, object.getPoschodie());
return pstm;
}
protected PreparedStatement prepareUpdateStatement(Connection connection, Oddelenie object)
throws SQLException {
String query = "UPDATE Oddelenie SET nazov=?, kod=?, poschodie=? where ident=?";
PreparedStatement pstm = connection.prepareStatement(query);
pstm.setString(1, object.getNazov());
pstm.setString(2, object.getKod());
pstm.setInt(3, object.getPoschodie());
pstm.setInt(4, object.getIdent());
return pstm;
}
protected PreparedStatement prepareDeleteStatement(Connection connection, Oddelenie object)
throws SQLException {
String query = "DELETE FROM Oddelenie where ident=?";
PreparedStatement pstm = connection.prepareStatement(query);
pstm.setInt(1, object.getIdent());
return pstm;
}
protected PreparedStatement prepareFindStatement(Connection connection, Integer id) throws
SQLException {
String query = "SELECT * FROM Oddelenie where ident=?";
PreparedStatement pstm = connection.prepareStatement(query);
pstm.setInt(1, id);
return pstm;
}
protected PreparedStatement prepareSelectStatement(Connection connection) throws SQLException {
String query = "SELECT * FROM Oddelenie";
PreparedStatement pstm = connection.prepareStatement(query);
return pstm;
}
protected Oddelenie createFromResultSet(ResultSet rs) throws SQLException {
Oddelenie object = new Oddelenie();
object.setNazov( rs.getString("nazov") );
object.setKod( rs.getString("kod") );
object.setPoschodie( rs.getInt("poschodie") );
return object;
}
@Override
protected void test(Oddelenie object) {
}
}
staci pouzit connectionPool.java
ConnectionPool cp = new ConnectionPool();
Connection conn = cp.acquire();
----------------------------------------------------------------------------------------------------Constraint ::= (Length | DefaultValue | Regex | Range | Required)
DefaultValue ::= (<defaultvalue> <INT_VALUE>)
Entity ::= (<entity> <NAME> (<{> (Property (Property)*) <}>))
Length ::= (<length> <INT_VALUE> <INT_VALUE>)
Model ::= ((Entity)* (Reference)*)
Property ::= (<NAME> (<:> Type) ((Constraint ((<,> Constraint))*))?)
Range ::= (<range> <INT_VALUE> <INT_VALUE>)
Reference ::= (<reference> <NAME> <NAME>)
Regex ::= (<regex> <STRING_VALUE>)
Required ::= <required>
Type ::= (<INTEGER> | <REAL> | <STRING>)
----------------------------------------------------------------------------------------------------public Reference[] getOutgoingReferences() {
Reference[] refs = new Reference[outgoingReferences.size()];
int i = 0;
for(Reference ref : outgoingReferences){
refs[i++] = ref;
}
return refs;
}
public Reference[] getOutgoingReferences() {
return (Reference[]) outgoingReferences.toArray(new Reference[outgoingReferences.size()]);
}
----------------------------------------------------------------------------------------------------#set( $n = 1 )
#foreach($entity in $model.entities)
case $n:
new ${entity.name}Table().menu();
break;
#set( $n = $n + 1 )
#end
----------------------------------------------------------------------------------------------------#if($!{component.entity})
#if($property.type == "INTEGER")
UIProcessor parserext = new UIProcessor(new FileReader("ui.xml"));
SchemaFactory schemaFactory=SchemaFactory.newInstance("[url=http://www.w3.org/2001/XMLSchema]http://www.w3.org/2001/XMLSchema[/url]");
Schema schema=schemaFactory.newSchema(new File("model/schema1.xsd"));
unmarshaller.setSchema(schema);
#set( $entity = ${model.findEntity($table.entityName)} )
#set( $name = $column.getPropertyName() )
#if(${entity.findProperty($name)})
#set( $property = ${entity.findProperty($name)} )
----------------------------------------------------------------------------------------------------Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools
neviete toto niekto zohnat http://www.amazon.com/Software-Factories-Assembling-Applications-Frameworks/dp/0471202843 (http://www.amazon.com/Software-Factories-Assembling-Applications-Frameworks/dp/0471202843)
ja to mam, ale nemyslim si zase ze by ta kniha bola potrebna na absolvovanie tohto predmetu Smiley
dal som to na FTP, a este aj ine ked tak chcete :)
nejak nevidim kde je ten IDENT_REGEX :'(
ja som pouzil dva regularne vyrazy na identifikatory (na mena properties):
[_$a-zA-Z][0-9a-zA-Z_$]+
([_$a-zA-Z][0-9a-zA-Z_$]+)[\\s]:[\\s](INTEGER|REAL|STRING)+ -> ked sa definuje aj typ
opravte ma ak to mam zle
ja si myslim, ze z toho sa az tak nestriela... ja som tam dal len kontrolu, na to, ci sa meno nezacina cislo...
to:Cheiftan
Ehm zbytocne pouzivas dva regularne vyrazy , staci pouzit predsa jeden co ste vsetci zabudli na TIcko ?? Ved mame pozitivny a tranzitivny uzaver ty tam mas pozitivny spomen si jaku vlastnost to vyjadruje :)
ja to mam cez regular., ale jednoduchsi... myslim, ze kontrolovat ci to nie je jedno z tych 50 klucovych slov je ale trosku prehnane nie?
package JavaKeywords;
import java.util.Arrays;
import java.util.List;
public class JavaKeywords {
private static final String keywords[] = {
"abstract", "continue", "for", "new", "switch",
"assert", "default", "goto", "package", "synchronized",
"boolean", "do", "if", "private", "this",
"break", "double", "implements", "protected", "throw",
"byte", "else", "import", "public", "throws",
"case", "enum", "instanceof", "return", "transient",
"catch", "extends", "int", "short", "char",
"final", "try", "interface", "static", "void",
"class", "finally", "long", "strictfp", "volatile",
"const", "float", "native", "super", "while"};
private static final List l = Arrays.asList(keywords);
public Boolean isJavaKeyWord(String keyword) {
return l.contains(keyword);
}
// alebo lepsie
public Boolean isJavaKeyWord2(String keyword) {
for (int i = 0; i < keywords.length; i++) {
if (keyword.equals(keywords[i])) {
return true;
}
}
return false;
}
}
ja som pouzil dva regularne vyrazy na identifikatory (na mena properties):
[_$a-zA-Z][0-9a-zA-Z_$]+
([_$a-zA-Z][0-9a-zA-Z_$]+)[\\s]:[\\s](INTEGER|REAL|STRING)+ -> ked sa definuje aj typ
opravte ma ak to mam zle
[\\s]* | - odfiltrovanie whitespaces [ \t\n\x0B\f\r] |
[_$a-zA-Z] | - 1. znak identifikatora |
[0-9a-zA-Z_$]* | - ostatne znaky identifikatora |
[\\s]* | - |
(:[\\s]*(Integer|Real|String)[\\s]*)? | - volitelna cast, typ moze a nemusi byt |
: | - podla zadania |
[\\s]* | - |
(Integer|Real|String) | - Integer alebo Real alebo String |
[\\s]* | - |
public Boolean hasProperLineSyntax(String line) {
Pattern pattern = Pattern.compile("[\\s]*[_$a-zA-Z][0-9a-zA-Z_$]*[\\s]*(:[\\s]*(Integer|Real|String)[\\s]*)?");
Matcher matcher = pattern.matcher(line);
return matcher.matches();
}
Úloha: Rozšírte vlastnosť o možnosť definovania údajového typu - string, integer, real. Typ je uvedený za názvom vlastnosti a je oddelený dvojbodkou. V prípade, že typ nie je uvedený, má vlastnosť údajový typ string.
a naj ... je pouzit:
boolean javax.lang.model.SourceVersion.isIdentifier(CharSequence name)
isIdentifier
public static boolean isIdentifier(CharSequence name)
Returns whether or not name is a syntactically valid identifier (simple name) or keyword in the latest source version. The method returns true if the name consists of an initial character for which Character.isJavaIdentifierStart(int) returns true, followed only by characters for which Character.isJavaIdentifierPart(int) returns true. This pattern matches regular identifiers, keywords, and the literals "true", "false", and "null". The method returns false for all other strings.
Parameters:
name - the string to check
Returns:
true if this string is a syntactically valid identifier or keyword, false otherwise.
Neviete mi poradit ako vytvorim v netbeanse Java DerbyDB? Vytvoril som si v Services->Drivers driver podla informacii z database properties.
Ale nepripoji ma kedze nemam vytvorenu databazu, a v Java DB mozem editovat iba properties - Je tam Java DB Installation a Database installation a tam neviem co mam zadat.
Neviete mi poradit ako vytvorim v netbeanse Java DerbyDB? Vytvoril som si v Services->Drivers driver podla informacii z database properties.
Ale nepripoji ma kedze nemam vytvorenu databazu, a v Java DB mozem editovat iba properties - Je tam Java DB Installation a Database installation a tam neviem co mam zadat.
Z vlastnej skusenosti mas na vyber bud preinstalovat cely netbeans a potom to nainstalovat vsetko naraz,
alebo ked doinstalovavas tak skus tento postup, som to podla toho rozbehal:
http://netbeans.org/kb/docs/ide/java-db.html#configuring (http://netbeans.org/kb/docs/ide/java-db.html#configuring)
run:
model [entity Oddelenie [nazov, kod, poschodie], entity Zamestnanec [meno, priezvisko, vek]]
Exception in thread "main" java.lang.ExceptionInInitializerError
at Make.main(Make.java:22)
Caused by: sk.tuke.magsa.tools.generator.ConfigurationException: Failed during loading of the configuration file 'generator.properties'
at sk.tuke.magsa.tools.generator.Generator.<clinit>(Generator.java:21)
... 1 more
Caused by: java.lang.NullPointerException
at java.util.Properties$LineReader.readLine(Properties.java:418)
at java.util.Properties.load0(Properties.java:337)
at java.util.Properties.load(Properties.java:325)
at sk.tuke.magsa.tools.generator.Generator.<clinit>(Generator.java:19)
... 1 more
Java Result: 1
BUILD SUCCESSFUL (total time: 1 second)
z nejakeho dovodu mi nechce nacitat generator.properties file. kde ho mam ulozit?Code: [Select]run:
model [entity Oddelenie [nazov, kod, poschodie], entity Zamestnanec [meno, priezvisko, vek]]
Exception in thread "main" java.lang.ExceptionInInitializerError
at Make.main(Make.java:22)
Caused by: sk.tuke.magsa.tools.generator.ConfigurationException: Failed during loading of the configuration file 'generator.properties'
at sk.tuke.magsa.tools.generator.Generator.<clinit>(Generator.java:21)
... 1 more
Caused by: java.lang.NullPointerException
at java.util.Properties$LineReader.readLine(Properties.java:418)
at java.util.Properties.load0(Properties.java:337)
at java.util.Properties.load(Properties.java:325)
at sk.tuke.magsa.tools.generator.Generator.<clinit>(Generator.java:19)
... 1 more
Java Result: 1
BUILD SUCCESSFUL (total time: 1 second)
Neviete mi poradit ako vytvorim v netbeanse Java DerbyDB? Vytvoril som si v Services->Drivers driver podla informacii z database properties.
Ale nepripoji ma kedze nemam vytvorenu databazu, a v Java DB mozem editovat iba properties - Je tam Java DB Installation a Database installation a tam neviem co mam zadat.
Z vlastnej skusenosti mas na vyber bud preinstalovat cely netbeans a potom to nainstalovat vsetko naraz,
alebo ked doinstalovavas tak skus tento postup, som to podla toho rozbehal:
http://netbeans.org/kb/docs/ide/java-db.html#configuring (http://netbeans.org/kb/docs/ide/java-db.html#configuring)
No podla toho som sa to aj snazil rozbehat, ale uz hned na druhom odstavci sa neviem pohnut :
If you downloaded the GlassFish application server separately and need help registering it in NetBeans IDE, see Registering a GlassFish Application Server Instance in the IDE's Help Contents (F1).
To potrebujem naistalovat GlassFish application server k tomu aby som vedel pracovat s JavaDB?? A samozrejme, ze v menu F1 mi nenajde potrebne informacie, pretoze nemam modul naistalovany a v netbeans moduloch nieco ohladom glassfish ani nie je.
dal som to na FTP, a este aj ine ked tak chcete :)
String query = "UPDATE Oddelenie SET nazov=?, kod=?, poschodie=? WHERE ident=?";
Ako ste riesili UPDATE v dao_impl.java.vm?Code: [Select]String query = "UPDATE Oddelenie SET nazov=?, kod=?, poschodie=? WHERE ident=?";
Konkretne to ident ma zaujima
Pokúste sa definovať a implementovať ďalšie typy obmedzení vlastností entít.
Úloha: Do triedy Property pridajte metódu na získanie obmedzenia vlastnosti podľa typu public <T extends Constraint> T getConstraint(Class<T> clazz). V prípade, že vlastnosť neobsahuje obmedzenie daného typu, je návratová hodnota null. V prípade, že existuje viacero obmedzení toho istého typu, je návratová hodnota ľubovoľné z týchto obmedzení.
5.cviko, uloha6.Code: [Select]Úloha: Do triedy Property pridajte metódu na získanie obmedzenia vlastnosti podľa typu public <T extends Constraint> T getConstraint(Class<T> clazz). V prípade, že vlastnosť neobsahuje obmedzenie daného typu, je návratová hodnota null. V prípade, že existuje viacero obmedzení toho istého typu, je návratová hodnota ľubovoľné z týchto obmedzení.
neviete mi prosim s tymto pomoct? neviem s tym uz 2 dni pohnut
co to ma robit alebo nemozte mi postnut fragment tohto kodu triedy?
dakujem za odpoved
-
toto riesenie podla mna nie je uplne spravne. Dovod: ked nenarazi na to spravne obmedzenie hned v prvej iteracii for cyklu tak vracia null a tym padom sa ani nedostane k testovaniu vyskytu dalsich obmedzeni v danej propertyCode: [Select]-
PS: a to hasConstraint je to iste s tym ze miesto objectov vrati len true alebo false hej?presne tak
public Entity findEntity(String name){
Entity ent = null;
for (Entity entity : this.getEntities()) {
if (entity.getName().equals(name)) {
return ent=entity;
}
else{
System.out.printf("nenasiel som nic(%s)",name.toString());
return null;
}
}
return ent;
}
public Entity findEntity(String name){
Entity ent = null;
//System.out.printf("%s... ",name.toString());
for (Entity entity : this.getEntities()) {
//System.out.print(entity.getName());
if (entity.getName().equals(name)) {
System.out.printf("nasiel som : %s",name.toString());
return ent=entity;
}
}
System.out.printf("nenasiel som nic(%s)",name.toString());
return ent;
}
ako sa ja z DatabaseScriptGeneratora ja dostanem k entitam kde su ulozene definície obmedzení ?
run:
model [entity Oddelenie [nazov, kod, poschodie], entity Zamestnanec [meno, priezvisko, vek]]
Exception in thread "main" java.lang.NullPointerException
at sk.tuke.magsa.tools.metamodel.Property.getConstraint(Property.java:59)
at sk.tuke.magsa.tools.generator.DatabaseScriptGenerator.generate(DatabaseScriptGenerator.java:45)
at Make.main(Make.java:31)
Java Result: 1
BUILD SUCCESSFUL (total time: 0 seconds)
nerozumiem tomu ze mi hodi null point exception pri volani getConstraint, a nasmeruje ma do property.java na riadku s forom, zrejme to bude ked vola this.constraints) tak tam nema nic
uz ma napadlo v Make spravit tak ze najprv srpavi builder s obmedzeniami a potom vygeneruje skript pre db, no to iste
no na konci validate mam toto co by malo zabezpecovat, doteraz som myslel ze to ide jak ma
edit: getConstraints som obalil do try catch aby nedaval nullpointex.. myslim ze to do buducna nie je ciste tiesenie ale ked pojde...
toto mi to vygenerovalo po 8. cviceni
z chybami:
-----------
- package sk.tuke.magsa.tools.parserext.javacc does not exist
- can not find symbol ParseExceptionCode: [Select]package sk.tuke.magsa.tools.parserext;
public class Parser {
private static sk.tuke.magsa.tools.parserext.javacc.Parser _parser;
public sk.tuke.magsa.tools.metamodel.Model parse(String input) throws ParseException {
sk.tuke.magsa.tools.parserext.javacc.ParserTokenManager tm = new sk.tuke.magsa.tools.parserext.javacc.ParserTokenManager(input);
if (_parser == null) {
_parser = new sk.tuke.magsa.tools.parserext.javacc.Parser(tm);
} else {
_parser.ReInit(tm);
}
try {
tuke.pargen.ReferenceResolver referenceResolver = tuke.pargen.ReferenceResolver.createInstance();
sk.tuke.magsa.tools.metamodel.Model root = sk.tuke.magsa.tools.parserext.javacc.Parser.parse();
referenceResolver.resolveReferences();
return root;
} catch (sk.tuke.magsa.tools.parserext.javacc.ParseException e) {
throw new ParseException("Problem parsing source code ", e);
}
}
public sk.tuke.magsa.tools.metamodel.Model parse(java.io.Reader reader) throws ParseException {
try {
return parse(readAsString(reader));
} catch(java.io.IOException e) {
throw new ParseException("Problem reading input file", e);
}
}
private String readAsString(java.io.Reader r) throws java.io.IOException {
StringBuilder sb = new StringBuilder();
java.io.BufferedReader br = new java.io.BufferedReader(r);
String line;
while ((line = br.readLine()) != null) {
sb.append(line + "\n");
}
return sb.toString();
}
}
Vyskusaj súbor nbproject/project.properties zmenit takto: build.generated.sources.dir=${basedir}/src-framework ... mne to takto ide
Vyskusaj súbor nbproject/project.properties zmenit takto: build.generated.sources.dir=${basedir}/src-framework ... mne to takto ide
package sk.tuke.magsa.tools.parserext
ap-source-output.sk.tuke.magsa.tools.parserext
Úloha: Použite anotáciu @References v konštruktore triedy Reference pre určenie automatického ;D ;D ;D ;D vytárania ;D ;D ;D ;D referencií.Co je na tom ";D"? Ved bolo treba spravit cely nastroj na to, aby ti to tam zahlasilo ci mozes taku anotaciu pouzit na danom mieste alebo nie a ako ju mozes pouzit... A taky vyvoj urcite netrval tri dni ;) Nie je to take jednoduche ako to vyzera na prve pouzitie ;) Ale ak mas nejaky navrh, napis ako by sa to dalo zlepsit, mozno sa posnazime :)
veď "vytárania" :)Úloha: Použite anotáciu @References v konštruktore triedy Reference pre určenie automatického ;D ;D ;D ;D vytárania ;D ;D ;D ;D referencií.Co je na tom ";D"? Ved bolo treba spravit cely nastroj na to, aby ti to tam zahlasilo ci mozes taku anotaciu pouzit na danom mieste alebo nie a ako ju mozes pouzit... A taky vyvoj urcite netrval tri dni ;) Nie je to take jednoduche ako to vyzera na prve pouzitie ;) Ale ak mas nejaky navrh, napis ako by sa to dalo zlepsit, mozno sa posnazime :)
Úloha: Použite anotáciu @References v konštruktore triedy Reference pre určenie automatického ;D ;D ;D ;D vytárania ;D ;D ;D ;D referencií.Co je na tom ";D"? Ved bolo treba spravit cely nastroj na to, aby ti to tam zahlasilo ci mozes taku anotaciu pouzit na danom mieste alebo nie a ako ju mozes pouzit... A taky vyvoj urcite netrval tri dni ;) Nie je to take jednoduche ako to vyzera na prve pouzitie ;) Ale ak mas nejaky navrh, napis ako by sa to dalo zlepsit, mozno sa posnazime :)
Teda to som si fakt nevsimla :D :D :D :D nabuduce daj boldom lebo ja som slepa :D :D :D zabite :D :D :DÚloha: Použite anotáciu @References v konštruktore triedy Reference pre určenie automatického ;D ;D ;D ;D vytárania ;D ;D ;D ;D referencií.Co je na tom ";D"? Ved bolo treba spravit cely nastroj na to, aby ti to tam zahlasilo ci mozes taku anotaciu pouzit na danom mieste alebo nie a ako ju mozes pouzit... A taky vyvoj urcite netrval tri dni ;) Nie je to take jednoduche ako to vyzera na prve pouzitie ;) Ale ak mas nejaky navrh, napis ako by sa to dalo zlepsit, mozno sa posnazime :)
jj, pekne ze si myslis, ze o tom az tak premyslam :), ale ja som fakt myslel len ten preklep :)
Ide vam ten regex na databze ??? ja pouzivam normalnu derby JAVA a ked davam check like porovnat tak mi to nefunguje a na nete som nasiel ze sa regex v sql robi pomocou check like. Tabulku vytvori ale potom musim zadat presne do property kde mam regex presne ten string ktory som dal ako regex pricom cez test mi to prejde.Regexy netreba kontrolovat velmi na databaze (aspon u mna nie), ked vam to nejde, nerobte ho...
http://www.java2s.com/Tutorial/Oracle/0120__Table/SettingtheRegularexpressioncheckforvarcharfield.htm (http://www.java2s.com/Tutorial/Oracle/0120__Table/SettingtheRegularexpressioncheckforvarcharfield.htm)
tu je prikald ale mne to tak nefunguje neviem ci to derby nepodporuje.
a moj create
CREATE TABLE Zamestanenec (
ident INTEGER PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
meno VARCHAR(32) NOT NULL CHECK( (LENGTH(meno) >= 2) AND (LENGTH(meno) <= 32) AND (meno LIKE '[A-Za-z]+')),
priezvisko VARCHAR(16) NOT NULL CHECK( (LENGTH(priezvisko) >= 0) AND (LENGTH(priezvisko) <= 16) ),
vek INT NOT NULL CHECK((vek >= 0) AND (vek <= 150))
);
cez test v dao mi prejde meno ale pri vkladani do db hodi ze sa nezhoduje z regexom a musim napisat presne [A-Za-z]+ inak nesplnim podmienku
a nefunguje ani ten ich regex neviem ci to derby potporuje alebo nie...
// Unique
if(object.get${generator.toUCIdent($property.name)}() != null) {
try {
Class.forName("org.apache.derby.jdbc.ClientDriver");
Connection con = DriverManager.getConnection("jdbc:derby://localhost:1527/magsa", "magsa", "magsa");
String sql = "SELECT $property.name FROM $item.name WHERE $property.name = ?";
PreparedStatement prest = con.prepareStatement(sql);
prest.$generator.psSetMethod($property.type)(1, object.get${generator.toUCIdent($property.name)}());
ResultSet rs1 = prest.executeQuery();
if (rs1.next()) {
throw new ValidatorException("Property '$property.name' has to be unique!");
}
} catch (SQLException ex) {
Logger.getLogger($item.name .class.getName()).log(Level.SEVERE, null, ex);
} catch (ClassNotFoundException ex) {
Logger.getLogger($item.name .class.getName()).log(Level.SEVERE, null, ex);
}
}
E:\Skola\4.rocnik\MaGSA\zadanie\magsa\src-framework\sk\tuke\magsa\framework\ApplicationException.java:3: duplicate class: sk.tuke.magsa.framework.ApplicationException
public class ApplicationException extends RuntimeException {
E:\Skola\4.rocnik\MaGSA\zadanie\magsa\src-framework\sk\tuke\magsa\framework\CRUDDao.java:5: duplicate class: sk.tuke.magsa.framework.CRUDDao
public interface CRUDDao<T extends Entity> {
E:\Skola\4.rocnik\MaGSA\zadanie\magsa\src-framework\sk\tuke\magsa\framework\CRUDDaoImpl.java:11: duplicate class: sk.tuke.magsa.framework.CRUDDaoImpl
public abstract class CRUDDaoImpl<T extends Entity> implements CRUDDao<T> {
E:\Skola\4.rocnik\MaGSA\zadanie\magsa\src-framework\sk\tuke\magsa\framework\ConnectionPool.java:9: duplicate class: sk.tuke.magsa.framework.ConnectionPool
public class ConnectionPool {
E:\Skola\4.rocnik\MaGSA\zadanie\magsa\src-framework\sk\tuke\magsa\framework\Entity.java:5: duplicate class: sk.tuke.magsa.framework.Entity
public abstract class Entity implements Serializable {
E:\Skola\4.rocnik\MaGSA\zadanie\magsa\src-framework\sk\tuke\magsa\framework\Utilities.java:8: duplicate class: sk.tuke.magsa.framework.Utilities
public class Utilities {
E:\Skola\4.rocnik\MaGSA\zadanie\magsa\src-framework\sk\tuke\magsa\framework\ValidatorException.java:3: duplicate class: sk.tuke.magsa.framework.ValidatorException
public class ValidatorException extends RuntimeException {
E:\Skola\4.rocnik\MaGSA\zadanie\magsa\src-framework\sk\tuke\magsa\framework\ui\FormDialog.java:5: duplicate class: sk.tuke.magsa.framework.ui.FormDialog
public abstract class FormDialog<T extends Entity> {
E:\Skola\4.rocnik\MaGSA\zadanie\magsa\src-framework\sk\tuke\magsa\framework\ui\TableDialog.java:8: duplicate class: sk.tuke.magsa.framework.ui.TableDialog
public abstract class TableDialog<T extends Entity> {
E:\Skola\4.rocnik\MaGSA\zadanie\magsa\src-framework\sk\tuke\magsa\framework\ApplicationException.java:3: duplicate class: sk.tuke.magsa.framework.ApplicationException
public class ApplicationException extends RuntimeException {
E:\Skola\4.rocnik\MaGSA\zadanie\magsa\src-framework\sk\tuke\magsa\framework\CRUDDao.java:5: duplicate class: sk.tuke.magsa.framework.CRUDDao
public interface CRUDDao<T extends Entity> {
E:\Skola\4.rocnik\MaGSA\zadanie\magsa\src-framework\sk\tuke\magsa\framework\CRUDDaoImpl.java:11: duplicate class: sk.tuke.magsa.framework.CRUDDaoImpl
public abstract class CRUDDaoImpl<T extends Entity> implements CRUDDao<T> {
E:\Skola\4.rocnik\MaGSA\zadanie\magsa\src-framework\sk\tuke\magsa\framework\ConnectionPool.java:9: duplicate class: sk.tuke.magsa.framework.ConnectionPool
public class ConnectionPool {
E:\Skola\4.rocnik\MaGSA\zadanie\magsa\src-framework\sk\tuke\magsa\framework\Entity.java:5: duplicate class: sk.tuke.magsa.framework.Entity
public abstract class Entity implements Serializable {
E:\Skola\4.rocnik\MaGSA\zadanie\magsa\src-framework\sk\tuke\magsa\framework\Utilities.java:8: duplicate class: sk.tuke.magsa.framework.Utilities
public class Utilities {
E:\Skola\4.rocnik\MaGSA\zadanie\magsa\src-framework\sk\tuke\magsa\framework\ValidatorException.java:3: duplicate class: sk.tuke.magsa.framework.ValidatorException
public class ValidatorException extends RuntimeException {
E:\Skola\4.rocnik\MaGSA\zadanie\magsa\src-framework\sk\tuke\magsa\framework\ui\FormDialog.java:5: duplicate class: sk.tuke.magsa.framework.ui.FormDialog
public abstract class FormDialog<T extends Entity> {
E:\Skola\4.rocnik\MaGSA\zadanie\magsa\src-framework\sk\tuke\magsa\framework\ui\TableDialog.java:8: duplicate class: sk.tuke.magsa.framework.ui.TableDialog
public abstract class TableDialog<T extends Entity> {
Note: E:\Skola\4.rocnik\MaGSA\zadanie\magsa\src\sk\tuke\magsa\tools\metamodel\Property.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Ide vam ten regex na databze ??? ja pouzivam normalnu derby JAVA a ked davam check like porovnat tak mi to nefunguje a na nete som nasiel ze sa regex v sql robi pomocou check like. Tabulku vytvori ale potom musim zadat presne do property kde mam regex presne ten string ktory som dal ako regex pricom cez test mi to prejde.http://www.network-theory.co.uk/docs/postgresql/vol1/SIMILARTORegularExpressions.html (http://www.network-theory.co.uk/docs/postgresql/vol1/SIMILARTORegularExpressions.html)
http://www.java2s.com/Tutorial/Oracle/0120__Table/SettingtheRegularexpressioncheckforvarcharfield.htm (http://www.java2s.com/Tutorial/Oracle/0120__Table/SettingtheRegularexpressioncheckforvarcharfield.htm)
tu je prikald ale mne to tak nefunguje neviem ci to derby nepodporuje.
a moj create
CREATE TABLE Zamestanenec (
ident INTEGER PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
meno VARCHAR(32) NOT NULL CHECK( (LENGTH(meno) >= 2) AND (LENGTH(meno) <= 32) AND (meno LIKE '[A-Za-z]+')),
priezvisko VARCHAR(16) NOT NULL CHECK( (LENGTH(priezvisko) >= 0) AND (LENGTH(priezvisko) <= 16) ),
vek INT NOT NULL CHECK((vek >= 0) AND (vek <= 150))
);
cez test v dao mi prejde meno ale pri vkladani do db hodi ze sa nezhoduje z regexom a musim napisat presne [A-Za-z]+ inak nesplnim podmienku
a nefunguje ani ten ich regex neviem ci to derby potporuje alebo nie...
Exception in thread "main" java.lang.NullPointerException
at sk.tuke.magsa.framework.CRUDDaoImpl.create(CRUDDaoImpl.java:32)
at Make.main(Make.java:34)
Java Result: 1
BUILD SUCCESSFUL (total time: 0 seconds)
CREATE TABLE Oddelenie (
ident INTEGER PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
nazov VARCHAR(100),
kod VARCHAR(100),
poschodie INTEGER
);
CREATE TABLE Zamestnanec (
ident INTEGER PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
priezvisko VARCHAR(16) NOT NULL CHECK((LENGTH(priezvisko) BETWEEN 0 AND 16)),
vek INTEGER NOT NULL CHECK(vek BETWEEN 18 AND 120),
adresa VARCHAR(250) CHECK((LENGTH(adresa) BETWEEN 3 AND 250)),
mzda FLOAT
);
Cely navod:toto mi to vygenerovalo po 8. cviceni
z chybami:
-----------
- package sk.tuke.magsa.tools.parserext.javacc does not exist
- can not find symbol ParseExceptionCode: [Select]package sk.tuke.magsa.tools.parserext;
public class Parser {
private static sk.tuke.magsa.tools.parserext.javacc.Parser _parser;
public sk.tuke.magsa.tools.metamodel.Model parse(String input) throws ParseException {
sk.tuke.magsa.tools.parserext.javacc.ParserTokenManager tm = new sk.tuke.magsa.tools.parserext.javacc.ParserTokenManager(input);
if (_parser == null) {
_parser = new sk.tuke.magsa.tools.parserext.javacc.Parser(tm);
} else {
_parser.ReInit(tm);
}
try {
tuke.pargen.ReferenceResolver referenceResolver = tuke.pargen.ReferenceResolver.createInstance();
sk.tuke.magsa.tools.metamodel.Model root = sk.tuke.magsa.tools.parserext.javacc.Parser.parse();
referenceResolver.resolveReferences();
return root;
} catch (sk.tuke.magsa.tools.parserext.javacc.ParseException e) {
throw new ParseException("Problem parsing source code ", e);
}
}
public sk.tuke.magsa.tools.metamodel.Model parse(java.io.Reader reader) throws ParseException {
try {
return parse(readAsString(reader));
} catch(java.io.IOException e) {
throw new ParseException("Problem reading input file", e);
}
}
private String readAsString(java.io.Reader r) throws java.io.IOException {
StringBuilder sb = new StringBuilder();
java.io.BufferedReader br = new java.io.BufferedReader(r);
String line;
while ((line = br.readLine()) != null) {
sb.append(line + "\n");
}
return sb.toString();
}
}
Vyskusaj súbor nbproject/project.properties zmenit takto: build.generated.sources.dir=${basedir}/src-framework ... mne to takto ide
ja mam Netbeans 6.8 a tiez mi vypisuje chybu s Parserom a po tvojej rade mi to teraz hadze toto:tak toto je velavravna chyba :))) musela by som vidiet
D:\štúdium\4.ročník\leto\Modelovanie a gener. softver. architektur\ZADANIE 8,9\magsa\nbproject\build-impl.xml:530: The following error occurred while executing this line:
D:\štúdium\4.ročník\leto\Modelovanie a gener. softver. architektur\ZADANIE 8,9\magsa\nbproject\build-impl.xml:224: Compile failed; see the compiler error output for detail
Cely navod:toto mi to vygenerovalo po 8. cviceni
z chybami:
-----------
- package sk.tuke.magsa.tools.parserext.javacc does not exist
- can not find symbol ParseExceptionCode: [Select]package sk.tuke.magsa.tools.parserext;
public class Parser {
private static sk.tuke.magsa.tools.parserext.javacc.Parser _parser;
public sk.tuke.magsa.tools.metamodel.Model parse(String input) throws ParseException {
sk.tuke.magsa.tools.parserext.javacc.ParserTokenManager tm = new sk.tuke.magsa.tools.parserext.javacc.ParserTokenManager(input);
if (_parser == null) {
_parser = new sk.tuke.magsa.tools.parserext.javacc.Parser(tm);
} else {
_parser.ReInit(tm);
}
try {
tuke.pargen.ReferenceResolver referenceResolver = tuke.pargen.ReferenceResolver.createInstance();
sk.tuke.magsa.tools.metamodel.Model root = sk.tuke.magsa.tools.parserext.javacc.Parser.parse();
referenceResolver.resolveReferences();
return root;
} catch (sk.tuke.magsa.tools.parserext.javacc.ParseException e) {
throw new ParseException("Problem parsing source code ", e);
}
}
public sk.tuke.magsa.tools.metamodel.Model parse(java.io.Reader reader) throws ParseException {
try {
return parse(readAsString(reader));
} catch(java.io.IOException e) {
throw new ParseException("Problem reading input file", e);
}
}
private String readAsString(java.io.Reader r) throws java.io.IOException {
StringBuilder sb = new StringBuilder();
java.io.BufferedReader br = new java.io.BufferedReader(r);
String line;
while ((line = br.readLine()) != null) {
sb.append(line + "\n");
}
return sb.toString();
}
}
Vyskusaj súbor nbproject/project.properties zmenit takto: build.generated.sources.dir=${basedir}/src-framework ... mne to takto ide
1. v subore magsa/nbproject/project.properties
editovat obsah premennej build.generated.sources.dir na:
build.generated.sources.dir=${basedir}/src-framework
2. v subore magsa/nbproject/build-impl.xml
editovat riadok 213 a 253 z:
<attribute default="${build.generated.sources.dir}/ap-source-output" name="apgeneratedsrcdir"/>
na
<attribute default="${build.generated.sources.dir}" name="apgeneratedsrcdir"/>
Nasledne to generuje normalne, ze da ine baliky si netreba vsimat (ide to aj bez toho aby boli spravne napisane).
Tato uprava je potrebna len pre Netbeansy 6.9.1tky
Vdaka jednemu mojmu studentovi za navod :) :thumbs-up:
Dufam ze to kolegovia daju cim skor do cviceni :banana_guitar:
D:\FEI TUKE\1.rocik ING\MaGSA\zadanie\new\In progress\magsa\src-framework\sk\tuke\magsa\tools\parserext\Parser.java:4: cannot find symbol
symbol : class Parser
location: package sk.tuke.magsa.tools.parserext.javacc
private static sk.tuke.magsa.tools.parserext.javacc.Parser _parser;
D:\FEI TUKE\1.rocik ING\MaGSA\zadanie\new\In progress\magsa\src-framework\sk\tuke\magsa\tools\parserext\javacc\ParserTokenManager.java:10: cannot find symbol
symbol: class TokenManager
public class ParserTokenManager implements TokenManager, ParserConstants {
plus dalsie errory velmi podobne teda ze nevie najst symbol parseru ... nestretol sa niekto s podobnou chybou?
Caused by: java.lang.NullPointerException
at sk.tuke.magsa.tools.metamodel.Entity.addOutgoingReference(Entity.java:38)
at sk.tuke.magsa.tools.metamodel.Reference.setFrom(Reference.java:25)
vyzera to tak, ze v triede Reference su from a to null
nazdar, odpisal mi aj cviciaci na mail a zajtra sa nato pozrieme na cviku, tak som zvedavy, co som domotal :))
private List<Reference> outgoingReferences = new ArrayList<Reference>();
nazdar, odpisal mi aj cviciaci na mail a zajtra sa nato pozrieme na cviku, tak som zvedavy, co som domotal :))
cau, pravdepodobne nemas clensku premennu outgoingReferences inicializovanu, ja som mal taku chybu, teda by to malo vyzerat takto:Code: [Select]private List<Reference> outgoingReferences = new ArrayList<Reference>();
nazdar, odpisal mi aj cviciaci na mail a zajtra sa nato pozrieme na cviku, tak som zvedavy, co som domotal :))Aj my sme riesili presne rovnaky problem, problem je v triede Main v magsa-generated. Cize ak mate zamestnanca a ten ma vlastnosti :
+ nastavit referenciu v zamestnancovi aj na oddelenie {zamestnanec.setOddelenie(cislo alebo oddelenie.setIdent())}nazdar, odpisal mi aj cviciaci na mail a zajtra sa nato pozrieme na cviku, tak som zvedavy, co som domotal :))Aj my sme riesili presne rovnaky problem, problem je v triede Main v magsa-generated. Cize ak mate zamestnanca a ten ma vlastnosti :
meno, priezvisko, vek. Tak mu musite v tej triede nastavit vsetky tieto vlastnosti- cize setMeno, setPriezvisko, setVek.Staci, ze jednu vlastnost nenastavite a hadze to "NullPointerException" :). Takisto treba spravit aj s triedou oddelenie, pripadne dalsimi.
Neviete ako generovat XML v 11.cviku?XML sa negeneruje. To si staci len stiahnut http://hornad.fei.tuke.sk/~wassermann/magsa/cvicenia/11/ui.xml (http://hornad.fei.tuke.sk/~wassermann/magsa/cvicenia/11/ui.xml) a nakopirovat do magsa adresara. Generuje sa len XSD schema pomocou schemagenu...
<form name="ZamestnanecForm" entity="Zamestnanec" label="Zamestnanec">
<field property="priezvisko" />
<field property="meno" />
<field property="vek" />
<lookupField property="nazov" table="OddelenieTable" />
</form>
V databaze v tabulke Zamestnanec mas stlpec ident_Oddelenie, cize pri vytvarani a editovani zamestnanca tam potrebujes zadat id zvoleneho oddelenia....no takto som to mal, ale potom aky vyznam ma element lookupField
<lookupField property="nazov" table="OddelenieTable" />
lebo takto uzivatel nijak nepouzije vo formulari nazov oddelenia...
Robili ste niekto doplnujucu ulohu k poslednemu cviku? Neviem ci som dobre pochopil, co je pod tym myslene.Ja som to pochopil tak, ze ked sa nachadzas v menu Zamestnanca, tak ti tam pripudne nova volba (napr.> Display by Oddelenie), kde po jej zvoleni si vyziadas od uzivatela IDcko oddelenia a po potvrdeni sa mu zobrazi tabulka Zamestnancov patriacich zvolenemu oddeleniu. Neviem ci je to myslene takto, ale ja to mam tak a uz to menit nebudem... :)
Mam napr. pri vypise Oddeleni v kazdom riadku pridat este nejaky vypis vsetkych zamestnancov, ktori tam patria?
da sa odovzdat aj po 13. tyzdni?to by aj mna zaujimalo
Zajtra uz nebude prednaska?Ja som tak pochopil ze nie.
Tak.Robili ste niekto doplnujucu ulohu k poslednemu cviku? Neviem ci som dobre pochopil, co je pod tym myslene.Ja som to pochopil tak, ze ked sa nachadzas v menu Zamestnanca, tak ti tam pripudne nova volba (napr.> Display by Oddelenie), kde po jej zvoleni si vyziadas od uzivatela IDcko oddelenia a po potvrdeni sa mu zobrazi tabulka Zamestnancov patriacich zvolenemu oddeleniu. Neviem ci je to myslene takto, ale ja to mam tak a uz to menit nebudem... :)
Mam napr. pri vypise Oddeleni v kazdom riadku pridat este nejaky vypis vsetkych zamestnancov, ktori tam patria?
da sa odovzdat aj po 13. tyzdni?Da, za polku bodov.
to z tych poslednych dvoch prednasok co su na moodli, co treba vediet? resp co sa ucite?nemoze niekto odpovedat? pls
Skuska by mala byt v pisomnej forme, 1 otazka z tych 8.
z coho sa ucite? prednasky z moodlu, vypracovane otazky z minuleho roku ,... ?Vypracovane otazky z minuleho roku (skuska.docx) su minulorocne prednasky plus/minus nieco naviac nahodene do jedneho docka takze je to vlastne jedno.
Skuska by mala byt v pisomnej forme, 1 otazka z tych 8.
no a nato sa pytam, v tych poslednych 2 temach, co je dolezite, resp. co sa ucite?
necche si niekto vymenit termin z 31. o 9.00 za neskorsi?
necche si niekto vymenit termin z 31. o 9.00 za neskorsi?
sak tam mas kopu volnych terminov za tym
Zahrna tato skuska aj nejaku ustnu cast resp. nieco typu povinne cakanie na vyhodnotenie,ee
alebo je mozne prist, napisat, odovzdat a odist?
(veni vidi vici ;) )
to si sadas k otazkam? su polozene na stole ci co?
Prides, napises, za 35 minut ides domov. Vysledky na maise. Zaruceny sposob ako spravit tuto skusku: prist o 40 minut skor, natlacit sa na dvere a potom vojst dnu ako prvy a sadnut si k otazke ktoru ako tak vies :Dalebo prid den pred tym vecer, schovaj s av miestnosti a na druhy den tam budes iste ako prvy :)
tak som prisiel 40 minut pred, ale uz tam plno ludi bolo :D
ilustracne foto:
(http://bethgsanders.com/wp-content/uploads/2011/03/ipad-line.jpg)
tak som prisiel 40 minut pred, ale uz tam plno ludi bolo :D
ilustracne foto:
(http://bethgsanders.com/wp-content/uploads/2011/03/ipad-line.jpg)
Vidim ze ma pocuvli :D ale je to tak. Tymto sposobom sa staci naucit jednu otazku.
A95 :D:D:D WTF? :D odkial? :D sak som ani na prezencke nebol :D ale nestazujem sA :D