Hi all,
I'm an OrientDb newbie. I'm using the 2.0 snapshot. I'm writing a custom 
command that will execute on an Object Database.
This command simply get a Person by name by an Object Database (Person 
class is registered in the database and the schema is automatically 
generated).

I don't understand how to get my OObjectDatabaseTx from the execute method.
The method getProfiledDatabaseInstance returns the underlying 
ODocumentDatabaseTx.
Code is below, with the question part highlighted.

Thanks!
Ena

public class GetPersonCommand extends OServerCommandAuthenticatedDbAbstract 
{

private final static Logger LOGGER = Logger.getLogger(GetPersonCommand
.class.getName());

private static final String[] NAMES = { "GET|getPerson/*" };

public GetPersonCommand(final OServerCommandConfiguration iConfiguration) {
super();
}

@Override
public boolean execute(OHttpRequest iRequest, OHttpResponse iResponse) 
throws Exception {
LOGGER.log(Level.INFO, "GetPersonCommand, enter");
// CHECK THE SYNTAX. 3 IS THE NUMBER OF MANDATORY PARAMETERS
String[] urlParts = checkSyntax(iRequest.url, 3, "Syntax error: 
getPerson/<database>/<personName>");

// TELLS TO THE SERVER WHAT I'M DOING (IT'S FOR THE PROFILER)
iRequest.data.commandInfo = "getPerson";
iRequest.data.commandDetail = urlParts[2];

// GET THE PARAMETERS
String name = urlParts[2];

OObjectDatabaseTx db = null;
Person person = null;
try {
                        // COMPILE ERROR! HOW TO GET IT?
db = getProfiledDatabaseInstance(iRequest);

List<Person> persons = db.query(new OSQLSynchQuery<Person>("select * from 
Person where name = \"" + name
+ "\""));
if (persons.size() == 0) {
iResponse.send(OHttpUtils.STATUS_NOTFOUND_CODE, "Not Found", 
OHttpUtils.CONTENT_JSON, "Person with name '"
+ urlParts[2] + "' was not found.", null);
} else {
person = persons.get(0);
iResponse.writeResult(person);
}

} catch (Exception e) {
iResponse.send(OHttpUtils.STATUS_INTERNALERROR_CODE, "General Error", 
OHttpUtils.CONTENT_JSON, "Error: "
+ e.getClass().getName(), null);
LOGGER.log(Level.WARNING, "Error", e);
} finally {
if (db != null)
db.close();
}

return false;

}

@Override
public String[] getNames() {
return NAMES;
}

}

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"OrientDB" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to