- 1
- 2
- 3
public abstract interface Expression {
public abstract Object evaluate(java.util.Map<String, Object> params);
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
Всего: 11
−36
public abstract interface Expression {
public abstract Object evaluate(java.util.Map<String, Object> params);
}
+74
url = new URL("http://[FF01:0:0:0:0:0:0:0101]");
String originalHostName = url.getHost();
System.out.println(originalHostName);
if (originalHostName.startsWith("[") && originalHostName.endsWith("]")) {
i1 = originalHostName.indexOf("[");
originalHostName = originalHostName.substring(i1 + 1);
i2 = originalHostName.lastIndexOf("]");
originalHostName = originalHostName.substring(0, i2);
if (IPV6REGEX.matcher(originalHostName).matches()) {
System.out.println(url + " is a ipv6 address");
String hostName = InetAddress.getByName(originalHostName).getHostAddress().toLowerCase();
if (hostName.contains(":")) {
hostName = "[" + hostName + "]";
}
}
}
Взято отсюда: http://www.pretechsol.com/2013/05/ipv6-java-regular-expression-example.html#.VBtooLn69B0
−126
CREATE TABLE `cpu` ( `id` mediumint(9) NOT NULL, `proc_name` varchar(250), `proc_freq` varchar(250));
CREATE TABLE `drive` ( `id` mediumint(9) NOT NULL, `controller` varchar(250), `model` varchar(250), `drive_size` varchar(250), `drive_type` varchar(250));
CREATE TABLE `memory` (`id` mediumint(9) NOT NULL, `size` varchar(250), `type` varchar(250), `speed` varchar(250));
CREATE TABLE `motherboard` (`id` mediumint(9) NOT NULL, `motherboard` varchar(250), `chipset` varchar(250), UNIQUE KEY `id` (`id`));
CREATE TABLE `network` (`id` mediumint(9) NOT NULL, `net` varchar(250) COLLATE cp1251_general_cs NOT NULL);
CREATE TABLE `passport` (`id` mediumint(9) NOT NULL AUTO_INCREMENT, `id_podrazdel` smallint(6) NOT NULL, `mesto` varchar(150) COLLATE cp1251_general_cs NOT NULL, `inv_nomer` varchar(150), `imya` varchar(30) COLLATE cp1251_general_cs NOT NULL, `ip` varchar(15), `date` varchar(16) COLLATE cp1251_general_cs NOT NULL, `plomba` varchar(1) COLLATE cp1251_general_cs NOT NULL, `dop_inf` text COLLATE cp1251_general_cs, `type` varchar(1) COLLATE cp1251_general_cs NOT NULL, `nout_model` varchar(50) COLLATE cp1251_general_cs NOT NULL, PRIMARY KEY (`id`));
CREATE TABLE `podrazdel` (`id_podrazdel` smallint(6) NOT NULL AUTO_INCREMENT, `podrazdel` varchar(150) COLLATE cp1251_general_cs NOT NULL, PRIMARY KEY (`id_podrazdel`), UNIQUE KEY `podrazdel` (`podrazdel`));
CREATE TABLE `program` (`id` mediumint(9) NOT NULL, `os` varchar(250) COLLATE cp1251_general_cs NOT NULL, `nod` varchar(1) COLLATE cp1251_general_cs NOT NULL, `office` varchar(250) COLLATE cp1251_general_cs NOT NULL, `spo` varchar(1) COLLATE cp1251_general_cs NOT NULL, UNIQUE KEY `id` (`id`));
CREATE TABLE `sound` (`id` mediumint(9) NOT NULL, `audio` varchar(250) COLLATE cp1251_general_cs NOT NULL);
CREATE TABLE `video` (`id` mediumint(9) NOT NULL, `video` varchar(250), `video_size` varchar(250));
Творение практикантки. "Нормализация структуры БД? не, не слышала!"
Главной является таблица passport. Остальные просто ссылаются на неё, кроме - внезапно! - таблицы podrazdel, которая таки имеет собственный ключ.
+125
def executeAfterDelay(t: Duration) (toExecute: => Unit): Future[Unit] = {
future {
blocking {
Thread.sleep(t.toMillis)
}
toExecute
}
}
Scala. Код работы с асинхронным фреймворком Akka. Говнонюанс в том, что есть встроенный класс Scheduler, делающий то же самое, только лучше.
+121
package simplecms
import auth.*
class AuthFilters {
private checkPermission(def controller, def p, def session, def params) {
if (p) {
boolean result = session.user?.profile?.permissions?.contains(p)
if (p.delegate) {
result |= controller.checkDelegation[p.name](session, params)
} else if (p.controllerChecked) {
result &= controller.checkPermission[p.name](session, params)
}
if (!result && p.parent) {
result = checkPermission(controller, p.parent, session, params)
}
return result
}
return true
}
def filters = {
main(controller:'*', action:'*') {
before = {
def mappings = PermissionMapping.findAllByControllerAndMethodInList(controllerName, [actionName, '*'])
boolean denied = mappings?.size() > 0
if (denied) {
def permissions = []
session.user?.attach()
mappings.each { mapping ->
if (mapping.permission?.guest) {
denied = false
} else if (permission.parent == null){
permissions << mapping.permission
}
}
if (denied) {
denied = !permissions.any { checkPermission(grailsApplication.mainContext.getBean(controllerName), it, session, params) }
}
}
return !denied
}
}
}
}
Нашёл у себя в проекте. Иерархия разрешений? ну так будем проверять только корневые, что заморачиваться?!
+119
package simplecms
import auth.*
class AuthFilters {
private checkPermission(def controller, def p, def session, def params) {
if (p) {
boolean result = session.user?.profile?.permissions?.contains(p)
if (p.delegate) {
result |= controller.checkDelegation[p.name](session, params)
} else if (p.controllerChecked) {
result &= controller.checkPermission[p.name](session, params)
}
if (!result && p.parent) {
result = checkPermission(controller, p.parent, session, params)
}
return result
}
return true
}
def filters = {
main(controller:'*', action:'*') {
before = {
def mappings = PermissionMapping.findAllByControllerAndMethodInList(controllerName, [actionName, '*'])
boolean denied = mappings?.size() > 0
if (denied) {
def permissions = []
session.user?.attach()
mappings.each { mapping ->
if (mapping.permission?.guest) {
denied = false
} else if (permission.parent == null){
permissions << mapping.permission
}
}
if (denied) {
denied = !permissions.any { checkPermission(grailsApplication.mainContext.getBean(controllerName), it, session, params) }
}
}
return !denied
}
}
}
}
Нашёл у себя в проекте. Иерархия разрешений? ну так будем проверять только корневые, что заморачиваться?!
+148
http://digest.subscribe.ru/inet/review/n763622828.html
Статья прелесть. document.write() в наше-то время...
+69
int limit = 10;
int countNews = daoService.getCountNews();
int currentPage = 1;
if (linkOffset != 0) {
currentPage += linkOffset / limit;
}
int offset = countNews - (linkOffset + limit);
if (offset < 0) {
offset = 0;
limit = (countNews - (linkOffset + limit)) + limit;
}
List newsList = daoService.getLimitNews(limit, offset);
List news = new ArrayList();
int index = 0;
for (int i = newsList.size() - 1; i >= 0; i--) {
news.add(index, newsList.get(i));
index++;
}
//DaoService.getLimitNews:
public List getLimitNews(String owner, int limit, int offset) {
return super.getSimpleJdbcTemplate().query(
"SELECT * FROM news WHERE owner=? AND apply=? AND local=? "
+ "ORDER BY created limit ? offset ?",
new NewsMapper(),
owner, true, true, limit, offset);
}
Получение списка новостей в ленте в обратном хронологическом порядке.
+65
public int getSysEmailId() {
return super.getJdbcTemplate().queryForInt(
"SELECT id FROM sys_email");
}
Коллега порадовал. Говнонюанс в том, что sys_email имеет структуру (id SERIAL PRIMARY KEY, login text NOT NULL UNIQUE, password text NOT NULL).
+74
String.format("USR-БГПУ", new Object[] { new SimpleDateFormat("dd MMMM yyyy", new Locale("ru", "RU")) })
Нашёл в самолично написанной утильке (из серии блиц-[говно]кодинга). Думал.