Xomw: Convert many class names to camelCase

pull/620/head
gnosygnu 7 years ago
parent 92c9fbddcc
commit 704809e5b9

@ -225,7 +225,13 @@ public class Swt_kit implements Gfui_kit {
rv.Owner_(owner);
return rv;
}
public Gfui_dlg_file New_dlg_file(byte type, String msg) {return new Swt_dlg_file(type, shell).Init_msg_(msg);}
public Gfui_dlg_file New_dlg_file(byte type, String msg) {return New_dlg_file(type, msg, null);}
public Gfui_dlg_file New_dlg_file(byte type, String msg, String exts) {
Gfui_dlg_file rv = new Swt_dlg_file(type, shell);
if (exts != null) rv.Init_exts_(exts);
rv.Init_msg_(msg);
return rv;
}
public Gfui_dlg_dir New_dlg_dir(String msg) {return new Swt_dlg_dir(shell).Init_msg_(msg);}
public Gfui_dlg_msg New_dlg_msg(String msg) {return new Swt_dlg_msg(shell).Init_msg_(msg);}
public ImageAdp New_img_load(Io_url url) {
@ -270,7 +276,7 @@ public class Swt_kit implements Gfui_kit {
Cfg_set(type, Swt_kit.Cfg_Html_BrowserType, Cfg_Html_BrowserType_parse(val));
}
}
else if (String_.Eq(k, Invk_ask_file)) return this.New_dlg_file(Gfui_kit_.File_dlg_type_open, m.Args_getAt(0).Val_to_str_or_empty()).Ask();
else if (String_.Eq(k, Invk_ask_file)) return this.New_dlg_file(Gfui_kit_.File_dlg_type_open, m.Args_getAt(0).Val_to_str_or_empty(), m.Args_getAt(1).Val_to_str_or_empty()).Ask();
else if (String_.Eq(k, "ask_dir")) return this.New_dlg_dir(m.Args_getAt(0).Val_to_str_or_empty()).Ask();
else if (String_.Eq(k, Invk_shell_close)) shell.close();
return this;

@ -175,12 +175,12 @@ class Xoctg_catlink_loader {
int nl_pos = Bry_find_.Find_fwd(tmp_sortkey, Byte_ascii.Nl);
if (nl_pos != Bry_find_.Not_found)
tmp_sortkey = Bry_.Mid(tmp_sortkey, 0, nl_pos);
if (version == 4) {
if (Bry_.Len_gt_0(url_sortkey)) {
// make sortkey_val
sortkey_val_bfr.Add_byte(Byte_ascii.Ltr_x).Add_byte_apos();
gplx.core.encoders.Hex_utl_.Encode_bfr(sortkey_val_bfr, collation_mgr.Get_sortkey(tmp_sortkey));
Tfds.Write(version, tmp_sortkey, sortkey_val_bfr.To_str());
sortkey_val_bfr.Add_byte_apos();
}
else

@ -41,6 +41,9 @@ public class Xow_db_mkr {
, new Xowd_text_tbl(core_conn, Bool_.N, data.Text_zip_tid())
);
// upgrade tbl: page for categories; NOTE: should change page_tbl to do this automatically
core_conn.Meta_fld_append(Xowd_page_tbl.TBL_NAME, Dbmeta_fld_itm.new_int(Xowd_page_tbl.FLD__page_cat_db_id).Default_(-1));
// create tbls: cat; may want to do "if (props.Layout_text().Tid_is_all_or_few())" // create in advance else will fail for v2; import wiki -> wiki loads and tries to load categories; v2 category processes and builds tbl; DATE:2015-03-22
core_db.Tbls__add(Bool_.Y
, new Xowd_cat_core_tbl(core_conn, Bool_.N)

@ -19,12 +19,14 @@ package gplx.xowa.addons.wikis.directorys.specials.items.bldrs; import gplx.*; i
import gplx.dbs.*; import gplx.dbs.cfgs.*;
import gplx.xowa.wikis.data.*; import gplx.xowa.wikis.data.tbls.*; import gplx.xowa.addons.wikis.ctgs.dbs.*;
import gplx.xowa.addons.wikis.directorys.dbs.*;
class Xow_wiki_upgrade_ {
public class Xow_wiki_upgrade_ {
// correlates loosely to App_.Version; however, should only change when new cases are added to this class
private static final int
Upgrade_version__v00 = 515
, Upgrade_version__v01 = 516
, Upgrade_version__cur = 516 // must match latest version
;
public static final int
Upgrade_version__cur = 516 // must match latest version
;
public static void Upgrade_wiki(Xoae_app app, byte[] domain, Io_url dir_url) {
// get conn
@ -70,7 +72,7 @@ class Xow_wiki_upgrade_ {
Gfo_usr_dlg_.Instance.Warn_many("", "", "xo.personal:page.page_cat_db_id upgrade failed; err=~{0}", Err_.Message_gplx_log(e));
}
// check for page_ids < 1
// BGN:check for page_ids < 1
// select from page_tbl for page_id < 1
Xow_db_mgr db_mgr = new Xow_db_mgr(dir_url, String_.new_u8(domain));
db_mgr.Init_by_load(core_db_url);
@ -94,6 +96,7 @@ class Xow_wiki_upgrade_ {
}
db_mgr.Db__core().Tbl__cfg().Upsert_int(Xowd_cfg_key_.Grp__db, Xowd_cfg_key_.Key__wiki__page__id_next, next_id + page_ids_len);
}
// END:check for page_ids < 1
cfg_tbl.Upsert_int(Xowd_cfg_key_.Key__wiki__upgrade__version, Upgrade_version__v01);
}

@ -38,9 +38,10 @@ public class Xowd_cfg_tbl_ {
}
public static void Insert__create(Xowe_wiki wiki) {Insert__create(wiki.Data__core_mgr().Db__core().Tbl__cfg(), wiki.Domain_str(), wiki.Domain_str(), wiki.Props().Main_page());}
public static void Insert__create(Db_cfg_tbl cfg_tbl, String domain, String name, byte[] main_page) {
cfg_tbl.Insert_str(Xowd_cfg_key_.Grp__empty , Xowd_cfg_key_.Key__wiki__core__domain , domain);
cfg_tbl.Insert_str(Xowd_cfg_key_.Grp__empty , Xowd_cfg_key_.Key__wiki__core__name , name);
cfg_tbl.Insert_bry(Xowd_cfg_key_.Grp__wiki_init, Xowd_cfg_key_.Key__init__main_page , main_page);
cfg_tbl.Insert_str(Xowd_cfg_key_.Grp__wiki_init, Xowd_cfg_key_.Key__init__modified_latest, Datetime_now.Get().XtoStr_fmt(DateAdp_.Fmt_iso8561_date_time));
cfg_tbl.Insert_str(Xowd_cfg_key_.Grp__empty , Xowd_cfg_key_.Key__wiki__core__domain , domain);
cfg_tbl.Insert_str(Xowd_cfg_key_.Grp__empty , Xowd_cfg_key_.Key__wiki__core__name , name);
cfg_tbl.Insert_int(Xowd_cfg_key_.Grp__empty , Xowd_cfg_key_.Key__wiki__upgrade__version , gplx.xowa.addons.wikis.directorys.specials.items.bldrs.Xow_wiki_upgrade_.Upgrade_version__cur);
cfg_tbl.Insert_bry(Xowd_cfg_key_.Grp__wiki_init, Xowd_cfg_key_.Key__init__main_page , main_page);
cfg_tbl.Insert_str(Xowd_cfg_key_.Grp__wiki_init, Xowd_cfg_key_.Key__init__modified_latest , Datetime_now.Get().XtoStr_fmt(DateAdp_.Fmt_iso8561_date_time));
}
}

@ -16,7 +16,7 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package gplx.xowa.mediawiki.includes; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*;
public class Xomw_Defines {
public class XomwDefines {
// /**
// * @defgroup Constants MediaWiki constants
// */

@ -28,11 +28,11 @@ import gplx.xowa.mediawiki.includes.utls.*;
* P7: titleFormatter->getPrefixedText
* P7: $html = HtmlArmor::getHtml($text);
*/
public class Xomw_linker {
public class XomwLinker {
// private Xomw_parser_env env;
private final Bry_bfr tmp = Bry_bfr_.New(), tmp_2 = Bry_bfr_.New();
private final Linker_rel_splitter splitter = new Linker_rel_splitter();
private final Xomw_html_utl html_utl = new Xomw_html_utl();
private final XomwHtml html_utl = new XomwHtml();
private byte[] wg_title = null;
private final Btrie_rv trv = new Btrie_rv();
private final byte[][] split_trail_rv = new byte[2][];
@ -51,7 +51,7 @@ public class Xomw_linker {
, Img_class__thumbimage = Bry_.new_a7("thumbimage")
;
private final Xomw_link_renderer link_renderer;
public Xomw_linker(Xomw_link_renderer link_renderer) {
public XomwLinker(Xomw_link_renderer link_renderer) {
this.link_renderer = link_renderer;
}
public void Init_by_wiki(Xomw_parser_env env, Btrie_slim_mgr trie) {
@ -127,7 +127,7 @@ public class Xomw_linker {
// 'https': Force a full URL with https:// as the scheme.
// 'stubThreshold' => (int): Stub threshold to use when determining link classes.
// @return String HTML <a> attribute
public void Link(Bry_bfr bfr, Xomw_Title target, byte[] html, Xomw_atr_mgr custom_attribs, Xomw_qry_mgr query, Xomw_opt_mgr options) {
public void Link(Bry_bfr bfr, XomwTitle target, byte[] html, Xomw_atr_mgr custom_attribs, Xomw_qry_mgr query, Xomw_opt_mgr options) {
// XO.MW.UNSUPPORTED:MW has different renderers -- presumably for forcing "https:" and others; XO only has one
//if (options != null) {
// // Custom options, create new LinkRenderer
@ -193,7 +193,7 @@ public class Xomw_linker {
* @return String
*/
// XO.MW:SYNC:1.29; DATE:2017-02-08
public void makeSelfLinkObj(Bry_bfr bfr, Xomw_Title nt, byte[] html, byte[] query, byte[] trail, byte[] prefix) {
public void makeSelfLinkObj(Bry_bfr bfr, XomwTitle nt, byte[] html, byte[] query, byte[] trail, byte[] prefix) {
// MW.HOOK:SelfLinkBegin
if (html == Bry_.Empty) {
html = tmp.Add_bry_escape_html(nt.getPrefixedText()).To_bry_and_clear();
@ -239,7 +239,7 @@ public class Xomw_linker {
// * @param LinkTarget $target
// * @return LinkTarget
// */
public static Xomw_Title normaliseSpecialPage(Xomw_Title target) {
public static XomwTitle normaliseSpecialPage(XomwTitle target) {
// if (target.Ns().Id_is_special() && !target.Is_external()) {
// list($name, $subpage) = SpecialPageFactory::resolveAlias($target->getDBkey());
// if (!$name) {
@ -334,7 +334,7 @@ public class Xomw_linker {
// @since 1.20
// @return String HTML for an image, with links, wrappers, etc.
// XO.MW:SYNC:1.29; DATE:2017-02-08
public void makeImageLink(Bry_bfr bfr, Xomw_parser_ctx pctx, Xomw_parser parser, Xomw_Title title, Xomw_File file, Xomw_params_frame frameParams, Xomw_params_handler handlerParams, Object time, byte[] query, int widthOption) {
public void makeImageLink(Bry_bfr bfr, Xomw_parser_ctx pctx, Xomw_parser parser, XomwTitle title, XomwFile file, Xomw_params_frame frameParams, Xomw_params_handler handlerParams, Object time, byte[] query, int widthOption) {
Xomw_parser_env env = parser.Env();
// XO.MW.HOOK:ImageBeforeProduceHTML
@ -433,7 +433,7 @@ public class Xomw_linker {
}
}
Xomw_MediaTransformOutput thumb = null;
XomwMediaTransformOutput thumb = null;
if (file != null && Php_utl_.isset(handlerParams.width)) {
// Create a resized image, without the additional thumbnail features
thumb = file.transform(handlerParams);
@ -538,7 +538,7 @@ public class Xomw_linker {
* @return String
*/
// XO.MW:SYNC:1.29; DATE:2017-02-08
private void makeThumbLink2(Bry_bfr bfr, Xomw_parser_ctx pctx, Xomw_Title title, Xomw_File file, Xomw_params_frame frameParams, Xomw_params_handler handlerParams, Object time, byte[] query) {
private void makeThumbLink2(Bry_bfr bfr, Xomw_parser_ctx pctx, XomwTitle title, XomwFile file, Xomw_params_frame frameParams, Xomw_params_handler handlerParams, Object time, byte[] query) {
boolean exists = file != null && file.exists();
int page = handlerParams.page;
@ -559,7 +559,7 @@ public class Xomw_linker {
// Reduce width for upright images when parameter 'upright' is used
handlerParams.width = Php_utl_.isset(frameParams.upright) ? 130 : 180;
}
Xomw_MediaTransformOutput thumb = null;
XomwMediaTransformOutput thumb = null;
boolean noscale = false;
boolean manualthumb = false;
@ -584,7 +584,7 @@ public class Xomw_linker {
else if (Php_utl_.isset(frameParams.framed)) {
// Use image dimensions, don't scale
// thumb = $file->getUnscaledThumb(handlerParams);
thumb = new Xomw_ThumbnailImage(file, file.getUrl(), file.getUrl(), file.getWidth(), file.getHeight());
thumb = new XomwThumbnailImage(file, file.getUrl(), file.getUrl(), file.getWidth(), file.getHeight());
noscale = true;
}
else {
@ -1372,7 +1372,7 @@ public class Xomw_linker {
* @return String
*/
// XO.MW:SYNC:1.29; DATE:2017-02-08
public void normalizeSubpageLink(Xomw_linker__normalize_subpage_link rv, Xomw_Title context_title, byte[] target, byte[] text) {
public void normalizeSubpageLink(XomwLinker_NormalizeSubpageLink rv, XomwTitle context_title, byte[] target, byte[] text) {
// Valid link forms:
// Foobar -- normal
// :Foobar -- override special treatment of prefix (images, language links)

@ -16,10 +16,10 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package gplx.xowa.mediawiki.includes; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*;
public class Xomw_linker__normalize_subpage_link {
public class XomwLinker_NormalizeSubpageLink {
public byte[] link;
public byte[] text;
public Xomw_linker__normalize_subpage_link Init(byte[] link, byte[] text) {
public XomwLinker_NormalizeSubpageLink Init(byte[] link, byte[] text) {
this.link = link;
this.text = text;
return this;

@ -17,8 +17,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package gplx.xowa.mediawiki.includes; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*;
import org.junit.*; import gplx.core.tests.*;
public class Xomw_linker__normalize_subpage_link__tst {
private final Xomw_linker__normalize_subpage_link__fxt fxt = new Xomw_linker__normalize_subpage_link__fxt();
public class XomwLinker_NormalizeSubpageLinkTest {
private final XomwLinker_NormalizeSubpageLinkFxt fxt = new XomwLinker_NormalizeSubpageLinkFxt();
@Test public void None() {fxt.Test__normalize_subpage_link("A/B/C" , "Z" , "" , "Z" , "");}
@Test public void Hash() {fxt.Test__normalize_subpage_link("A/B/C" , "/Y#Z" , "" , "A/B/C/Y#Z" , "/Y#Z");}
@Test public void Slash__basic() {fxt.Test__normalize_subpage_link("A/B/C" , "/Z" , "" , "A/B/C/Z" , "/Z");}
@ -27,11 +27,11 @@ public class Xomw_linker__normalize_subpage_link__tst {
@Test public void Dot2__many() {fxt.Test__normalize_subpage_link("A/B/C" , "../../Z" , "z1" , "A/Z" , "z1");}
@Test public void Dot2__trailing() {fxt.Test__normalize_subpage_link("A/B/C" , "../../Z/" , "" , "A/Z" , "Z");}
}
class Xomw_linker__normalize_subpage_link__fxt {
private final Xomw_linker mgr = new Xomw_linker(new gplx.xowa.mediawiki.includes.linkers.Xomw_link_renderer(new Xomw_sanitizer()));
private final Xomw_linker__normalize_subpage_link normalize_subpage_link = new Xomw_linker__normalize_subpage_link();
class XomwLinker_NormalizeSubpageLinkFxt {
private final XomwLinker mgr = new XomwLinker(new gplx.xowa.mediawiki.includes.linkers.Xomw_link_renderer(new XomwSanitizer()));
private final XomwLinker_NormalizeSubpageLink normalize_subpage_link = new XomwLinker_NormalizeSubpageLink();
public void Test__normalize_subpage_link(String page_title_str, String link, String text, String expd_link, String expd_text) {
mgr.normalizeSubpageLink(normalize_subpage_link, Xomw_Title.newFromText(Bry_.new_u8(page_title_str)), Bry_.new_u8(link), Bry_.new_u8(text));
mgr.normalizeSubpageLink(normalize_subpage_link, XomwTitle.newFromText(Bry_.new_u8(page_title_str)), Bry_.new_u8(link), Bry_.new_u8(text));
Gftest.Eq__str(expd_link, String_.new_u8(normalize_subpage_link.link));
Gftest.Eq__str(expd_text, String_.new_u8(normalize_subpage_link.text));
}

@ -17,15 +17,15 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package gplx.xowa.mediawiki.includes; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*;
import org.junit.*; import gplx.core.tests.*; import gplx.core.btries.*; import gplx.xowa.mediawiki.includes.parsers.*;
public class Xomw_linker__split_trail__tst {
private final Xomw_linker__split_trail__fxt fxt = new Xomw_linker__split_trail__fxt();
public class XomwLinker_SplitTrailTest {
private final XomwLinker_SplitTrailFxt fxt = new XomwLinker_SplitTrailFxt();
@Test public void Basic() {fxt.Test__split_trail("abc def" , "abc" , " def");}
@Test public void None() {fxt.Test__split_trail(" abc" , null , " abc");}
}
class Xomw_linker__split_trail__fxt {
private final Xomw_linker linker = new Xomw_linker(new gplx.xowa.mediawiki.includes.linkers.Xomw_link_renderer(new Xomw_sanitizer()));
class XomwLinker_SplitTrailFxt {
private final XomwLinker linker = new XomwLinker(new gplx.xowa.mediawiki.includes.linkers.Xomw_link_renderer(new XomwSanitizer()));
private final Btrie_slim_mgr trie = Btrie_slim_mgr.cs();
public Xomw_linker__split_trail__fxt() {
public XomwLinker_SplitTrailFxt() {
String[] ary = new String[] {"a", "b", "c", "d", "e", "f"};
for (String itm : ary)
trie.Add_str_str(itm, itm);

@ -16,18 +16,18 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package gplx.xowa.mediawiki.includes; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*;
public class Xomw_MagicWord {
public class XomwMagicWord {
public boolean case_match;
public byte[] name;
public Xomw_MagicWordSynonym[] synonyms;
public Xomw_MagicWord(byte[] name, boolean case_match, byte[][] synonyms_ary) {
public XomwMagicWordSynonym[] synonyms;
public XomwMagicWord(byte[] name, boolean case_match, byte[][] synonyms_ary) {
this.name = name;
this.case_match = case_match;
int synonyms_len = synonyms_ary.length;
this.synonyms = new Xomw_MagicWordSynonym[synonyms_len];
this.synonyms = new XomwMagicWordSynonym[synonyms_len];
for (int i = 0; i < synonyms_len; i++) {
synonyms[i] = new Xomw_MagicWordSynonym(name, case_match, synonyms_ary[i]);
synonyms[i] = new XomwMagicWordSynonym(name, case_match, synonyms_ary[i]);
}
}
}

@ -17,11 +17,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package gplx.xowa.mediawiki.includes; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*;
import gplx.core.btries.*; import gplx.core.primitives.*;
public class Xomw_MagicWordArray {
public class XomwMagicWordArray {
private Btrie_slim_mgr fwd_trie;
private Btrie_bwd_mgr bwd_trie;
private final Btrie_rv trv = new Btrie_rv();
// private final Xomw_MagicWordMgr magic_word_mgr;
// private final XomwMagicWordMgr magic_word_mgr;
public final byte[][] names;
// /** @var array */
@ -31,31 +31,31 @@ public class Xomw_MagicWordArray {
// private regex;
public Xomw_MagicWordArray(Xomw_MagicWordMgr magic_word_mgr, byte[][] names) {
public XomwMagicWordArray(XomwMagicWordMgr magic_word_mgr, byte[][] names) {
// this.magic_word_mgr = magic_word_mgr;
this.names = names;
// ASSUME: all magic words in a group have the same case sensitivity
for (byte[] name : names) {
Xomw_MagicWord word = magic_word_mgr.Get(name);
XomwMagicWord word = magic_word_mgr.Get(name);
if (word == null) continue;
Xomw_MagicWordSynonym[] synonyms = word.synonyms;
XomwMagicWordSynonym[] synonyms = word.synonyms;
int synonyms_len = synonyms.length;
for (int i = 0; i < synonyms_len; i++) {
Xomw_MagicWordSynonym synonym = synonyms[i];
XomwMagicWordSynonym synonym = synonyms[i];
switch (synonym.arg1_tid) {
case Xomw_MagicWordSynonym.Arg1__nil:
case Xomw_MagicWordSynonym.Arg1__end:
case XomwMagicWordSynonym.Arg1__nil:
case XomwMagicWordSynonym.Arg1__end:
if (fwd_trie == null) fwd_trie = word.case_match ? Btrie_slim_mgr.cs() : Btrie_slim_mgr.ci_u8();
fwd_trie.Add_obj(synonym.text_wo_arg1, synonym);
break;
case Xomw_MagicWordSynonym.Arg1__bgn:
case XomwMagicWordSynonym.Arg1__bgn:
if (bwd_trie == null) bwd_trie = Btrie_bwd_mgr.c__(word.case_match);
bwd_trie.Add(synonym.text_wo_arg1, synonym);
break;
// ignore if mid / mix
case Xomw_MagicWordSynonym.Arg1__mid:
case Xomw_MagicWordSynonym.Arg1__mix:
case XomwMagicWordSynonym.Arg1__mid:
case XomwMagicWordSynonym.Arg1__mix:
Gfo_usr_dlg_.Instance.Warn_many("", "", "MagicWordArray: unsupported arg_1_tid: tid=~{0}", synonym.arg1_tid);
continue;
}
@ -253,13 +253,13 @@ public class Xomw_MagicWordArray {
if (fwd_trie != null) {
Object o = fwd_trie.Match_at(trv, src, 0, src_end);
if (o != null) {
Xomw_MagicWordSynonym syn = ((Xomw_MagicWordSynonym)o);
XomwMagicWordSynonym syn = ((XomwMagicWordSynonym)o);
name = syn.magic_name;
val_bgn = trv.Pos();
val_end = src_end;
// if "nil", then must be full match; EX: "thumbx" does not match "thumb"
if (syn.arg1_tid == Xomw_MagicWordSynonym.Arg1__nil
if (syn.arg1_tid == XomwMagicWordSynonym.Arg1__nil
&& syn.text_wo_arg1.length != src_end) {
rv[0] = rv[1] = null;
return;
@ -271,7 +271,7 @@ public class Xomw_MagicWordArray {
if (bwd_trie != null) {
Object o = bwd_trie.Match_at(trv, src, src_end - 1, -1);
if (o != null) {
Xomw_MagicWordSynonym syn = ((Xomw_MagicWordSynonym)o);
XomwMagicWordSynonym syn = ((XomwMagicWordSynonym)o);
name = syn.magic_name;
val_bgn = 0;
val_end = src_end - syn.text_wo_arg1.length;

@ -17,8 +17,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package gplx.xowa.mediawiki.includes; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*;
import org.junit.*; import gplx.core.tests.*;
public class Xomw_MagicWordArray__tst {
private final Xomw_MagicWordArray__fxt fxt = new Xomw_MagicWordArray__fxt();
public class XomwMagicWordArrayTest {
private final XomwMagicWordArrayFxt fxt = new XomwMagicWordArrayFxt();
@Test public void Nil() {
fxt.Init__word(Bool_.Y, "img_nil", "nil");
fxt.Init__ary("img_nil");
@ -46,14 +46,14 @@ public class Xomw_MagicWordArray__tst {
fxt.Test__matchVariableStartToEnd("123px", "img_width", "123");
}
}
class Xomw_MagicWordArray__fxt {
private final Xomw_MagicWordMgr magic_word_mgr = new Xomw_MagicWordMgr();
private Xomw_MagicWordArray magic_word_ary;
class XomwMagicWordArrayFxt {
private final XomwMagicWordMgr magic_word_mgr = new XomwMagicWordMgr();
private XomwMagicWordArray magic_word_ary;
public void Init__word(boolean cs, String word, String... synonyms) {
magic_word_mgr.Add(Bry_.new_u8(word), cs, Bry_.Ary(synonyms));
}
public void Init__ary(String... words) {
magic_word_ary = new Xomw_MagicWordArray(magic_word_mgr, Bry_.Ary(words));
magic_word_ary = new XomwMagicWordArray(magic_word_mgr, Bry_.Ary(words));
}
public void Test__matchVariableStartToEnd(String src, String expd_name, String expd_val) {
byte[][] rv = new byte[2][];

@ -16,13 +16,13 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package gplx.xowa.mediawiki.includes; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*;
public class Xomw_MagicWordMgr {
public class XomwMagicWordMgr {
private final Hash_adp_bry hash = Hash_adp_bry.cs();
public void Add(byte[] name, boolean cs, byte[]... synonyms) {
Xomw_MagicWord mw = new Xomw_MagicWord(name, cs, synonyms);
XomwMagicWord mw = new XomwMagicWord(name, cs, synonyms);
hash.Add(name, mw);
}
public Xomw_MagicWord Get(byte[] name) {
return (Xomw_MagicWord)hash.Get_by(name);
public XomwMagicWord Get(byte[] name) {
return (XomwMagicWord)hash.Get_by(name);
}
}

@ -16,13 +16,13 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package gplx.xowa.mediawiki.includes; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*;
public class Xomw_MagicWordSynonym {
public class XomwMagicWordSynonym {
public final byte[] magic_name;
public final boolean case_match;
public final byte[] text;
public final byte[] text_wo_arg1;
public final byte arg1_tid;
public Xomw_MagicWordSynonym(byte[] magic_name, boolean case_match, byte[] text) {
public XomwMagicWordSynonym(byte[] magic_name, boolean case_match, byte[] text) {
this.magic_name = magic_name;
this.case_match = case_match;
this.text = text;

@ -30,11 +30,11 @@ import gplx.xowa.mediawiki.includes.title.*;
* @see docs/injection.txt for an overview of using dependency injection in the
* MediaWiki code super.
*/
public class Xomw_MediaWikiServices {
public class XomwMediaWikiServices {
/**
* @var MediaWikiServices|null
*/
private static Xomw_MediaWikiServices instance = null;
private static XomwMediaWikiServices instance = null;
/**
* Returns the global default instance of the top level service locator.
@ -50,7 +50,7 @@ public class Xomw_MediaWikiServices {
*
* @return MediaWikiServices
*/
public static Xomw_MediaWikiServices getInstance() {
public static XomwMediaWikiServices getInstance() {
if (instance == null) {
// NOTE: constructing GlobalVarConfig here is not particularly pretty,
// but some information from the global scope has to be injected here,
@ -58,7 +58,7 @@ public class Xomw_MediaWikiServices {
// configuration from.
// $bootstrapConfig = new GlobalVarConfig();
// self::$instance = self::newInstance($bootstrapConfig, 'load');
instance = new Xomw_MediaWikiServices();
instance = new XomwMediaWikiServices();
}
return instance;
@ -577,11 +577,11 @@ public class Xomw_MediaWikiServices {
* @since 1.28
* @return TitleParser
*/
public Xomw_MediaWikiTitleCodec getTitleParser() {
public XomwMediaWikiTitleCodec getTitleParser() {
// return $this->getService( 'TitleParser' );
return titleParser;
}
private Xomw_MediaWikiTitleCodec titleParser = new Xomw_MediaWikiTitleCodec();
private XomwMediaWikiTitleCodec titleParser = new XomwMediaWikiTitleCodec();
// /**
// * @since 1.28

@ -16,7 +16,7 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package gplx.xowa.mediawiki.includes; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*;
public class Xomw_Message {
public class XomwMessage {
public byte[] text() {return null;}
public byte[] escaped() {return null;}
}

@ -16,7 +16,7 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package gplx.xowa.mediawiki.includes; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*;
public class Xomw_message_mgr {
public class XomwMessageMgr {
private final Hash_adp hash = Hash_adp_.New();
public Xomw_Message Get_by_str(String key) {return (Xomw_Message)hash.Get_by(key);}
public XomwMessage Get_by_str(String key) {return (XomwMessage)hash.Get_by(key);}
}

@ -19,7 +19,7 @@ package gplx.xowa.mediawiki.includes; import gplx.*; import gplx.xowa.*; import
import gplx.core.brys.*; import gplx.core.btries.*; import gplx.core.encoders.*; import gplx.core.primitives.*; import gplx.langs.htmls.entitys.*;
import gplx.xowa.parsers.htmls.*;
import gplx.langs.htmls.*; import gplx.xowa.mediawiki.includes.htmls.*; import gplx.xowa.mediawiki.includes.parsers.*; import gplx.xowa.mediawiki.includes.utls.*;
public class Xomw_sanitizer {
public class XomwSanitizer {
private final Mwh_doc_wkr__atr_bldr atr_bldr = new Mwh_doc_wkr__atr_bldr();
private final Mwh_atr_parser atr_parser = new Mwh_atr_parser();
private final Xomw_regex_escape_invalid regex_clean_url = new Xomw_regex_escape_invalid();
@ -33,7 +33,7 @@ public class Xomw_sanitizer {
private static Xomw_regex_url_char regex_url_char;
private static Btrie_slim_mgr invalid_idn_trie;
public Xomw_sanitizer() {
public XomwSanitizer() {
this.normalize_cbk = new Xomw_regex_url_char_cbk__normalize(this);
this.decode_cbk = new Xomw_regex_url_char_cbk__decode(this);
if (regex_url_char == null) {
@ -702,8 +702,8 @@ interface Xomw_regex_url_char_cbk {
boolean When_amp(Bry_bfr bfr);
}
class Xomw_regex_url_char_cbk__normalize implements Xomw_regex_url_char_cbk {
private final Xomw_sanitizer sanitizer;
public Xomw_regex_url_char_cbk__normalize(Xomw_sanitizer sanitizer) {
private final XomwSanitizer sanitizer;
public Xomw_regex_url_char_cbk__normalize(XomwSanitizer sanitizer) {
this.sanitizer = sanitizer;
}
public boolean When_ent(Bry_bfr bfr, byte[] name) { // XO.MW:normalizeEntity
@ -712,7 +712,7 @@ class Xomw_regex_url_char_cbk__normalize implements Xomw_regex_url_char_cbk {
// &gt; &amp; &quot;). If the entity is a MediaWiki-specific alias, returns
// the HTML equivalent. Otherwise, returns HTML-escaped text of
// pseudo-entity source (eg &amp;foo;)
Object o = Xomw_sanitizer.html_entities.Get_by_bry(name);
Object o = XomwSanitizer.html_entities.Get_by_bry(name);
if (o == null) {
bfr.Add_str_a7("&amp;").Add(name).Add_byte_semic();
return false;
@ -747,15 +747,15 @@ class Xomw_regex_url_char_cbk__normalize implements Xomw_regex_url_char_cbk {
}
}
class Xomw_regex_url_char_cbk__decode implements Xomw_regex_url_char_cbk {
private final Xomw_sanitizer sanitizer;
public Xomw_regex_url_char_cbk__decode(Xomw_sanitizer sanitizer) {
private final XomwSanitizer sanitizer;
public Xomw_regex_url_char_cbk__decode(XomwSanitizer sanitizer) {
this.sanitizer = sanitizer;
}
public boolean When_ent(Bry_bfr bfr, byte[] name) {// XO.MW:decodeEntity
// If the named entity is defined in the HTML 4.0/XHTML 1.0 DTD,
// return the UTF-8 encoding of that character. Otherwise, returns
// pseudo-entity source (eg "&foo;")
Object o = Xomw_sanitizer.html_entities.Get_by_bry(name);
Object o = XomwSanitizer.html_entities.Get_by_bry(name);
if (o == null) {
bfr.Add_byte(Byte_ascii.Amp).Add(name).Add_byte_semic();
}
@ -799,7 +799,7 @@ class Xomw_regex_url_char {
public Xomw_regex_url_char() {
// assert static structs
if (Normalize__dec == null) {
synchronized (Xomw_sanitizer.class) {
synchronized (XomwSanitizer.class) {
Normalize__dec = Bool_ary_bldr.New_u8().Set_rng(Byte_ascii.Num_0, Byte_ascii.Num_9).To_ary();
Normalize__hex = Bool_ary_bldr.New_u8()
.Set_rng(Byte_ascii.Num_0, Byte_ascii.Num_9)

@ -17,8 +17,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package gplx.xowa.mediawiki.includes; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*;
import org.junit.*; import gplx.core.tests.*; import gplx.core.btries.*; import gplx.xowa.mediawiki.includes.htmls.*;
public class Xomw_sanitizer__tst {
private final Xomw_sanitizer__fxt fxt = new Xomw_sanitizer__fxt();
public class XomwSanitizerTest {
private final XomwSanitizerFxt fxt = new XomwSanitizerFxt();
@Test public void Normalize__text() {fxt.Test__normalize_char_references("abc" , "abc");}
@Test public void Normalize__dec() {fxt.Test__normalize_char_references("&#08;" , "&amp;#08;");}
@Test public void Normalize__dec__invalid() {fxt.Test__normalize_char_references("&#09;" , "&#9;");}
@ -124,8 +124,8 @@ public class Xomw_sanitizer__tst {
fxt.Test__merge_attributes(src_atrs.Clear().Add_many(cls, " v1 v2 "), trg_atrs.Clear().Add_many(cls, " v3 v4 "), expd_atrs.Clear().Add_many(cls, "v1 v2 v3 v4"));
}
}
class Xomw_sanitizer__fxt {
private final Xomw_sanitizer sanitizer = new Xomw_sanitizer();
class XomwSanitizerFxt {
private final XomwSanitizer sanitizer = new XomwSanitizer();
private final Bry_bfr tmp = Bry_bfr_.New();
public void Test__normalize_char_references(String src_str, String expd) {
byte[] src_bry = Bry_.new_u8(src_str);

@ -26,7 +26,7 @@ import gplx.xowa.mediawiki.includes.title.*;
* @note Consider using a TitleValue Object instead. TitleValue is more lightweight
* and does not rely on global state or the database.
*/
public class Xomw_Title {
public class XomwTitle {
// /** @var HashBagOStuff */
// static private $titleCache = null;
//
@ -131,7 +131,7 @@ public class Xomw_Title {
* following default, NS_MAIN is hardcoded in several places. See bug 696.
* Zero except in {{transclusion}} tags.
*/
public int mDefaultNamespace = Xomw_Defines.NS_MAIN;
public int mDefaultNamespace = XomwDefines.NS_MAIN;
// /** @var int The page length, 0 for special pages */
// protected $mLength = -1;
@ -253,8 +253,8 @@ public class Xomw_Title {
* @throws InvalidArgumentException
* @return Title|null Title or null on an error.
*/
public static Xomw_Title newFromText(byte[] text) {return newFromText(text, Xomw_Defines.NS_MAIN);}
public static Xomw_Title newFromText(byte[] text, int defaultNamespace) {
public static XomwTitle newFromText(byte[] text) {return newFromText(text, XomwDefines.NS_MAIN);}
public static XomwTitle newFromText(byte[] text, int defaultNamespace) {
// DWIM: Integers can be passed in here when page titles are used as array keys.
// XO.MW.SKIP:STRONGCAST
// if ($text != null && !is_string($text) && !is_int($text)) {
@ -265,7 +265,7 @@ public class Xomw_Title {
}
try {
return Xomw_Title.newFromTextThrow(text, defaultNamespace);
return XomwTitle.newFromTextThrow(text, defaultNamespace);
} catch (MalformedTitleException ex) {
Err_.Noop(ex);
return null;
@ -286,7 +286,7 @@ public class Xomw_Title {
* @throws MalformedTitleException If the title is invalid
* @return Title
*/
public static Xomw_Title newFromTextThrow(byte[] text, int defaultNamespace) {
public static XomwTitle newFromTextThrow(byte[] text, int defaultNamespace) {
// if (is_object($text)) {
// throw new MWException('$text must be a String, given an Object');
// }
@ -309,7 +309,7 @@ public class Xomw_Title {
// $filteredText = Sanitizer::decodeCharReferencesAndNormalize($text);
byte[] filteredText = text;
Xomw_Title t = new Xomw_Title();
XomwTitle t = new XomwTitle();
t.mDbkeyform = Php_str_.strtr(filteredText, Byte_ascii.Space, Byte_ascii.Underline);
t.mDefaultNamespace = defaultNamespace;
@ -1399,7 +1399,7 @@ public class Xomw_Title {
* @param String $fragment
* @return Title
*/
public Xomw_Title createFragmentTarget(byte[] fragment) {
public XomwTitle createFragmentTarget(byte[] fragment) {
return null;
// return self::makeTitle(
// this.getNamespace(),
@ -1705,6 +1705,7 @@ public class Xomw_Title {
*
* @return String String of the URL.
*/
public byte[] getLocalURL(byte[] query) {return getLocalURL(query, null);}
public byte[] getLocalURL(byte[] query, byte[] query2) {
byte[] url = null;
// global wgArticlePath, wgScript, wgServer, wgRequest;
@ -3366,9 +3367,9 @@ public class Xomw_Title {
// @todo: get rid of secureAndSplit, refactor parsing code.
// @note: getTitleParser() returns a TitleParser implementation which does not have a
// splitTitleString method, but the only implementation (MediaWikiTitleCodec) does
Xomw_MediaWikiTitleCodec titleCodec = Xomw_MediaWikiServices.getInstance().getTitleParser();
XomwMediaWikiTitleCodec titleCodec = XomwMediaWikiServices.getInstance().getTitleParser();
// MalformedTitleException can be thrown here
Xomw_MediaWikiTitleCodec_Parts parts = titleCodec.splitTitleString(dbkey, this.getDefaultNamespace());
XomwMediaWikiTitleCodecParts parts = titleCodec.splitTitleString(dbkey, this.getDefaultNamespace());
// Fill fields
// this.setFragment('#' . parts.fragment);
@ -3382,7 +3383,7 @@ public class Xomw_Title {
this.mTextform = Php_str_.strtr(this.mDbkeyform, Byte_ascii.Underline, Byte_ascii.Space);
// We already know that some pages won't be in the database!
if (this.isExternal() || this.mNamespace == Xomw_Defines.NS_SPECIAL) {
if (this.isExternal() || this.mNamespace == XomwDefines.NS_SPECIAL) {
this.mArticleID = 0;
}
@ -4227,7 +4228,7 @@ public class Xomw_Title {
* @param Title $title
* @return boolean
*/
public boolean equals(Xomw_Title title) {
public boolean equals(XomwTitle title) {
// Note: == is necessary for proper matching of number-like titles.
return Bry_.Eq(this.getInterwiki(), title.getInterwiki())
&& this.getNamespace() == title.getNamespace()

@ -16,7 +16,7 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package gplx.xowa.mediawiki.includes; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*;
public class Xomw_xml {
public class XomwXml {
// Format an XML element with given attributes and, optionally, text content.
// Element and attribute names are assumed to be ready for literal inclusion.
// Strings are assumed to not contain XML-illegal characters; special
@ -55,7 +55,7 @@ public class Xomw_xml {
bfr.Add_byte_space();
bfr.Add((byte[])attribs.Get_at(i));
bfr.Add_byte_eq().Add_byte_quote();
Xomw_sanitizer.Encode_attribute(bfr, (byte[])attribs.Get_at(i + 1));
XomwSanitizer.Encode_attribute(bfr, (byte[])attribs.Get_at(i + 1));
bfr.Add_byte_quote();
}
}

@ -21,7 +21,7 @@ import gplx.xowa.mediawiki.includes.utls.*;
/* TODO.XO:
* getZoneUrl
*/
public class Xomw_FileRepo {
public class XomwFileRepo {
// static final DELETE_SOURCE = 1;
// static final OVERWRITE = 2;
// static final OVERWRITE_SAME = 4;
@ -119,7 +119,7 @@ public class Xomw_FileRepo {
// /** @var array callable|boolean Override these in the super class */
// protected oldFileFactoryKey = false;
public Xomw_FileRepo(byte[] url, byte[] thumbUrl) {
public XomwFileRepo(byte[] url, byte[] thumbUrl) {
this.url = url;
this.thumbUrl = thumbUrl;
}
@ -620,7 +620,7 @@ public class Xomw_FileRepo {
* @param Title title
* @return String
*/
public byte[] getNameFromTitle(byte[] title) {
public byte[] getNameFromTitle(XomwTitle title) {
// global wgContLang;
// if (this.initialCapital != MWNamespace::isCapitalized(NS_FILE)) {
// name = title.getUserCaseDBKey();
@ -632,7 +632,7 @@ public class Xomw_FileRepo {
// }
//
// return name;
return title;
return title.getDBkey();
}
//
// /**
@ -1346,7 +1346,7 @@ public class Xomw_FileRepo {
* @param String file Virtual URL (or storage path) of file to check
* @return boolean
*/
public boolean fileExists(Xomw_File file) {
public boolean fileExists(XomwFile file) {
// result = this.fileExistsBatch(file);
//
// return result[0];

@ -19,7 +19,7 @@ package gplx.xowa.mediawiki.includes.filerepo.file; import gplx.*; import gplx.x
import gplx.xowa.mediawiki.includes.media.*;
import gplx.xowa.mediawiki.includes.utls.*;
import gplx.xowa.mediawiki.includes.parsers.*; import gplx.xowa.mediawiki.includes.parsers.lnkis.*;
public class Xomw_File {
public class XomwFile {
/* TODO.XO:
* P8: normalizeExtension
* P8: normalizeTitle
@ -69,10 +69,10 @@ public class Xomw_File {
*/
/** @var FileRepo|LocalRepo|ForeignAPIRepo|boolean */
public Xomw_FileRepo repo;
public XomwFileRepo repo;
/** @var Title|String|boolean */
private byte[] title;
private XomwTitle title;
// /** @var String Text of last error */
// protected lastError;
@ -87,7 +87,7 @@ public class Xomw_File {
// protected fsFile;
/** @var MediaHandler */
private Xomw_MediaHandler handler = null;
private XomwMediaHandler handler = null;
/** @var String The URL corresponding to one of the four basic zones */
public byte[] url;
@ -268,11 +268,11 @@ public class Xomw_File {
// return strcmp(a.getName(), b.getName());
// }
public Xomw_File(Xomw_parser_env env, byte[] title, Xomw_FileRepo repo) {
public XomwFile(Xomw_parser_env env, XomwTitle title, XomwFileRepo repo) {
this.env = env;
this.title = title;
// call normalizeTitle
this.name = title;
// change title.getDBKey to normalizeTitle
this.name = title.getDBkey();
this.repo = repo;
}
/**
@ -309,7 +309,7 @@ public class Xomw_File {
*
* @return Title
*/
public byte[] getTitle() {
public XomwTitle getTitle() {
return this.title;
}
@ -335,7 +335,7 @@ public class Xomw_File {
if (!Php_utl_.isset(this.url)) {
// this.assertRepoDefined();
byte[] ext = this.getExtension();
this.url = Bry_.Add(this.repo.getZoneUrl(Xomw_FileRepo.Zone__public, ext), Byte_ascii.Slash_bry, this.getUrlRel());
this.url = Bry_.Add(this.repo.getZoneUrl(XomwFileRepo.Zone__public, ext), Byte_ascii.Slash_bry, this.getUrlRel());
}
return this.url;
@ -403,7 +403,7 @@ public class Xomw_File {
public byte[] getPath() {
if (this.path == null) {
// this.assertRepoDefined();
this.path = Bry_.Add(this.repo.getZonePath(Xomw_FileRepo.Zone__public), Byte_ascii.Slash_bry, this.getRel());
this.path = Bry_.Add(this.repo.getZonePath(XomwFileRepo.Zone__public), Byte_ascii.Slash_bry, this.getRel());
}
return this.path;
@ -751,7 +751,7 @@ public class Xomw_File {
* @return boolean
*/
public boolean mustRender() {
Xomw_MediaHandler handler = this.getHandler();
XomwMediaHandler handler = this.getHandler();
return handler.mustRender(this);
}
@ -948,7 +948,7 @@ public class Xomw_File {
* @return String|null
*/
public byte[] generateThumbName(byte[] name, Xomw_params_handler handlerParams) {
Xomw_MediaHandler handler = this.getHandler();
XomwMediaHandler handler = this.getHandler();
if (handler == null) {
return null;
}
@ -1030,11 +1030,11 @@ public class Xomw_File {
* @param int flags A bitfield, may contain self::RENDER_NOW to force rendering
* @return ThumbnailImage|MediaTransformOutput|boolean False on failure
*/
public Xomw_MediaTransformOutput transform(Xomw_params_handler handlerParams) {return transform(handlerParams, 0);}
public Xomw_MediaTransformOutput transform(Xomw_params_handler handlerParams, int flags) {
public XomwMediaTransformOutput transform(Xomw_params_handler handlerParams) {return transform(handlerParams, 0);}
public XomwMediaTransformOutput transform(Xomw_params_handler handlerParams, int flags) {
// global wgThumbnailEpoch;
Xomw_MediaTransformOutput thumb = null;
XomwMediaTransformOutput thumb = null;
do {
if (!this.canRender()) {
// thumb = this.iconThumb();
@ -1118,12 +1118,12 @@ public class Xomw_File {
* @param int flags
* @return boolean|MediaTransformOutput
*/
public Xomw_MediaTransformOutput generateAndSaveThumb(Object tmpFile, Xomw_params_handler transformParams, int flags) {
public XomwMediaTransformOutput generateAndSaveThumb(Object tmpFile, Xomw_params_handler transformParams, int flags) {
// global wgIgnoreImageErrors;
//
// stats = RequestContext::getMain().getStats();
Xomw_MediaHandler handler = this.getHandler();
XomwMediaHandler handler = this.getHandler();
Xomw_params_handler normalisedParams = transformParams;
handler.normaliseParams(this, normalisedParams);
@ -1142,7 +1142,7 @@ public class Xomw_File {
// starttime = microtime(true);
//
// Actually render the thumbnail...
Xomw_MediaTransformOutput thumb = handler.doTransform(this, tmpThumbPath, thumbUrl, transformParams);
XomwMediaTransformOutput thumb = handler.doTransform(this, tmpThumbPath, thumbUrl, transformParams);
// tmpFile.bind(thumb); // keep alive with thumb
//
// statTiming = microtime(true) - starttime;
@ -1366,7 +1366,7 @@ public class Xomw_File {
* @return MediaHandler|boolean Registered MediaHandler for file's MIME type
* or false if none found
*/
public Xomw_MediaHandler getHandler() {
public XomwMediaHandler getHandler() {
if (this.handler == null) {
this.handler = env.MediaHandlerFactory().getHandler(this.getMimeType());
}
@ -1618,7 +1618,7 @@ public class Xomw_File {
public byte[] getThumbPath(byte[] suffix) {
// this.assertRepoDefined();
return Bry_.Add(this.repo.getZonePath(Xomw_FileRepo.Zone__thumb), Byte_ascii.Slash_bry, this.getThumbRel(suffix));
return Bry_.Add(this.repo.getZonePath(XomwFileRepo.Zone__thumb), Byte_ascii.Slash_bry, this.getThumbRel(suffix));
}
// /**
@ -1698,7 +1698,7 @@ public class Xomw_File {
* @return String Path
*/
private byte[] getThumbUrl(byte[] suffix) {
return this.getZoneUrl(Xomw_FileRepo.Zone__thumb, suffix);
return this.getZoneUrl(XomwFileRepo.Zone__thumb, suffix);
}
// /**

@ -16,6 +16,6 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package gplx.xowa.mediawiki.includes.filerepo.file; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*; import gplx.xowa.mediawiki.includes.*; import gplx.xowa.mediawiki.includes.filerepo.*;
public interface Xomw_file_finder {
Xomw_File Find_file(Xomw_Title ttl);
public interface XomwFileFinder {
XomwFile Find_file(XomwTitle ttl);
}

@ -17,17 +17,17 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package gplx.xowa.mediawiki.includes.filerepo.file; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*; import gplx.xowa.mediawiki.includes.*; import gplx.xowa.mediawiki.includes.filerepo.*;
import gplx.xowa.mediawiki.includes.parsers.*;
public class Xomw_file_finder__mock implements Xomw_file_finder {
public class XomwFileFinderMock implements XomwFileFinder {
private final Xomw_parser_env env;
public Xomw_file_finder__mock(Xomw_parser_env env) {this.env = env;}
public XomwFileFinderMock(Xomw_parser_env env) {this.env = env;}
private final Hash_adp_bry hash = Hash_adp_bry.cs();
public void Clear() {hash.Clear();}
public Xomw_File Find_file(Xomw_Title ttl) {
return (Xomw_File)hash.Get_by(ttl.getPrefixedDBkey());
public XomwFile Find_file(XomwTitle ttl) {
return (XomwFile)hash.Get_by(ttl.getPrefixedDBkey());
}
public void Add(String title, Xomw_FileRepo repo, int w, int h, byte[] mime) {
public void Add(String title, XomwFileRepo repo, int w, int h, byte[] mime) {
byte[] title_bry = Bry_.new_u8(title);
Xomw_LocalFile file = new Xomw_LocalFile(env, title_bry, repo, w, h, mime);
XomwLocalFile file = new XomwLocalFile(env, XomwTitle.newFromText(title_bry), repo, w, h, mime);
hash.Add_if_dupe_use_nth(title_bry, file);
}
}

@ -16,6 +16,6 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package gplx.xowa.mediawiki.includes.filerepo.file; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*; import gplx.xowa.mediawiki.includes.*; import gplx.xowa.mediawiki.includes.filerepo.*;
public class Xomw_file_finder__noop implements Xomw_file_finder {
public Xomw_File Find_file(Xomw_Title ttl) {return null;}
public class XomwFileFinderNoop implements XomwFileFinder {
public XomwFile Find_file(XomwTitle ttl) {return null;}
}

@ -17,7 +17,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package gplx.xowa.mediawiki.includes.filerepo.file; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*; import gplx.xowa.mediawiki.includes.*; import gplx.xowa.mediawiki.includes.filerepo.*;
import gplx.xowa.mediawiki.includes.parsers.*;
public class Xomw_LocalFile extends Xomw_File {// static final VERSION = 10; // cache version
public class XomwLocalFile extends XomwFile {// static final VERSION = 10; // cache version
//
// static final CACHE_FIELD_MAX_LEN = 1000;
//
@ -188,7 +188,7 @@ public class Xomw_LocalFile extends Xomw_File {// static final VERSION = 10; //
// ];
// }
public Xomw_LocalFile(Xomw_parser_env env, byte[] title, Xomw_FileRepo repo, int w, int h, byte[] mime) {super(env, title, repo);
public XomwLocalFile(Xomw_parser_env env, XomwTitle title, XomwFileRepo repo, int w, int h, byte[] mime) {super(env, title, repo);
this.width = w;
this.height = h;
this.mime = mime;

@ -18,7 +18,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
package gplx.xowa.mediawiki.includes.htmls; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*; import gplx.xowa.mediawiki.includes.*;
import gplx.core.btries.*;
import gplx.xowa.mediawiki.includes.utls.*;
public class Xomw_html_utl {
public class XomwHtml {
private final Bry_bfr tmp = Bry_bfr_.New();
private final Btrie_rv trv = new Btrie_rv();
public void Raw_element(Bry_bfr bfr, byte[] element, Xomw_atr_mgr attribs, byte[] contents) {

@ -22,7 +22,7 @@ public class Xomw_html_utl__expand_attributes__tst {
@Test public void Basic() {fxt.Test__expand_attributes(" a=\"b\"", "a", "b");}
}
class Xomw_html_utl__expand_attributes__fxt {
private final Xomw_html_utl utl = new Xomw_html_utl();
private final XomwHtml utl = new XomwHtml();
private final Bry_bfr bfr = Bry_bfr_.New();
public void Test__expand_attributes(String expd, String... kvs) {
Xomw_atr_mgr atrs = new Xomw_atr_mgr();

@ -26,15 +26,15 @@ import gplx.xowa.mediawiki.includes.htmls.*;
*/
public class Xomw_link_renderer {
private boolean expand_urls = false;
private final Xomw_html_utl html_utl = new Xomw_html_utl();
private final XomwHtml html_utl = new XomwHtml();
private final Xomw_atr_mgr attribs = new Xomw_atr_mgr();
private final List_adp tmp_merge_deleted = List_adp_.New();
private final Xomw_sanitizer sanitizer;
public Xomw_link_renderer(Xomw_sanitizer sanitizer) {
private final XomwSanitizer sanitizer;
public Xomw_link_renderer(XomwSanitizer sanitizer) {
this.sanitizer = sanitizer;
}
// XO.MW:SYNC:1.29; DATE:2017-01-31
public void Make_link(Bry_bfr bfr, Xomw_Title target, byte[] text, byte[] classes, Xomw_atr_mgr extra_atrs, Xomw_qry_mgr query) {
public void Make_link(Bry_bfr bfr, XomwTitle target, byte[] text, byte[] classes, Xomw_atr_mgr extra_atrs, Xomw_qry_mgr query) {
if (target.isKnown()) {
this.Make_known_link(bfr, target, text, extra_atrs, query);
} else {
@ -45,7 +45,7 @@ public class Xomw_link_renderer {
// If you have already looked up the proper CSS classes using LinkRenderer::getLinkClasses()
// or some other method, use this to avoid looking it up again.
// XO.MW:SYNC:1.29; DATE:2017-01-31
public void Make_preloaded_link(Bry_bfr bfr, Xomw_Title target, byte[] text, byte[] classes, Xomw_atr_mgr extra_atrs, Xomw_qry_mgr query) {
public void Make_preloaded_link(Bry_bfr bfr, XomwTitle target, byte[] text, byte[] classes, Xomw_atr_mgr extra_atrs, Xomw_qry_mgr query) {
// XO.MW.HOOK: $this->runBeginHook --> 'HtmlPageLinkRendererBegin', 'LinkBegin'
target = Normalize_target(target);
@ -69,7 +69,7 @@ public class Xomw_link_renderer {
}
// XO.MW:SYNC:1.29; DATE:2017-01-31
public void Make_known_link(Bry_bfr bfr, Xomw_Title target, byte[] text, Xomw_atr_mgr extra_atrs, Xomw_qry_mgr query) {
public void Make_known_link(Bry_bfr bfr, XomwTitle target, byte[] text, Xomw_atr_mgr extra_atrs, Xomw_qry_mgr query) {
byte[] classes = Bry_.Empty;
if (target.isExternal()) {
classes = Bry__classes__extiw;
@ -82,7 +82,7 @@ public class Xomw_link_renderer {
Make_preloaded_link(bfr, target, text, classes, extra_atrs, query);
}
// XO.MW:SYNC:1.29; DATE:2017-01-31
public void Make_broken_link(Bry_bfr bfr, Xomw_Title target, byte[] text, Xomw_atr_mgr extra_atrs, Xomw_qry_mgr query) {
public void Make_broken_link(Bry_bfr bfr, XomwTitle target, byte[] text, Xomw_atr_mgr extra_atrs, Xomw_qry_mgr query) {
// XO.MW.HOOK: Run legacy hook
// We don't want to include fragments for broken links, because they
@ -92,7 +92,7 @@ public class Xomw_link_renderer {
}
target = Normalize_target(target);
if (query.action == null && target.getNamespace() != Xomw_Defines.NS_SPECIAL) {
if (query.action == null && target.getNamespace() != XomwDefines.NS_SPECIAL) {
query.action = Bry_.new_a7("edit");
query.redlink = 1;
}
@ -118,7 +118,7 @@ public class Xomw_link_renderer {
Build_a_element(bfr, target, text, attribs, false);
}
// XO.MW:SYNC:1.29; DATE:2017-01-31
private void Build_a_element(Bry_bfr bfr, Xomw_Title target, byte[] text, Xomw_atr_mgr attribs, boolean is_known) {
private void Build_a_element(Bry_bfr bfr, XomwTitle target, byte[] text, Xomw_atr_mgr attribs, boolean is_known) {
// XO.MW.HOOK:HtmlPageLinkRendererEnd
byte[] html = text;
@ -129,7 +129,7 @@ public class Xomw_link_renderer {
html_utl.Raw_element(bfr, Gfh_tag_.Bry__a, attribs, html);
}
// XO.MW:SYNC:1.29; DATE:2017-01-31
private byte[] Get_link_text(Xomw_Title target) {
private byte[] Get_link_text(XomwTitle target) {
byte[] prefixed_text = target.getPrefixedText();
// If the target is just a fragment, with no title, we return the fragment
// text. Otherwise, we return the title text itself.
@ -138,7 +138,7 @@ public class Xomw_link_renderer {
}
return prefixed_text;
}
private byte[] Get_link_url(Xomw_Title target, Xomw_qry_mgr query) {
private byte[] Get_link_url(XomwTitle target, Xomw_qry_mgr query) {
// TODO: Use a LinkTargetResolver service instead of Title
// if ($this->forceArticlePath) {
@ -156,8 +156,8 @@ public class Xomw_link_renderer {
return url;
}
// XO.MW:SYNC:1.29; DATE:2017-01-31
private Xomw_Title Normalize_target(Xomw_Title target) {
return Xomw_linker.normaliseSpecialPage(target);
private XomwTitle Normalize_target(XomwTitle target) {
return XomwLinker.normaliseSpecialPage(target);
}
// XO.MW:SYNC:1.29; DATE:2017-02-01
private void Merge_attribs(Xomw_atr_mgr src, Xomw_atr_mgr trg) {
@ -188,7 +188,7 @@ public class Xomw_link_renderer {
tmp_merge_deleted.Clear();
}
}
public byte[] Get_link_classes(Xomw_Title target) {
public byte[] Get_link_classes(XomwTitle target) {
// Make sure the target is in the cache
// $id = $this->linkCache->addLinkObj($target);
// if ($id == 0) {

@ -22,15 +22,15 @@ import gplx.xowa.mediawiki.includes.utls.*;
* validateThumbParams
*/
// MEMORY:only one instance per wiki
public abstract class Xomw_ImageHandler extends Xomw_MediaHandler { private final Xomw_param_map paramMap = new Xomw_param_map();
public Xomw_ImageHandler(byte[] key) {super(key);
public abstract class XomwImageHandler extends XomwMediaHandler { private final Xomw_param_map paramMap = new Xomw_param_map();
public XomwImageHandler(byte[] key) {super(key);
paramMap.Add(Xomw_param_itm.Mw__img_width, Xomw_param_map.Type__handler, Xomw_param_itm.Name_bry__width);
}
/**
* @param File file
* @return boolean
*/
@Override public boolean canRender(Xomw_File file) {
@Override public boolean canRender(XomwFile file) {
return (Php_utl_.istrue(file.getWidth()) && Php_utl_.istrue(file.getHeight()));
}
@ -95,7 +95,7 @@ public abstract class Xomw_ImageHandler extends Xomw_MediaHandler { private fina
* @param array paramsVar
* @return boolean
*/
@Override public boolean normaliseParams(Xomw_File image, Xomw_params_handler handlerParams) {
@Override public boolean normaliseParams(XomwFile image, Xomw_params_handler handlerParams) {
byte[] mimeType = image.getMimeType();
if (!Php_utl_.isset(handlerParams.width)) {
@ -145,7 +145,7 @@ public abstract class Xomw_ImageHandler extends Xomw_MediaHandler { private fina
// Because thumbs are only referred to by width, the height always needs
// to be scaled by the width to keep the thumbnail sizes consistent,
// even if it was set inside the if block above
handlerParams.physicalHeight = Xomw_File.scaleHeight(srcWidth, srcHeight,
handlerParams.physicalHeight = XomwFile.scaleHeight(srcWidth, srcHeight,
handlerParams.physicalWidth);
// Set the height if it was not validated in the if block higher up
@ -189,7 +189,7 @@ public abstract class Xomw_ImageHandler extends Xomw_MediaHandler { private fina
return false;
}
height = Xomw_File.scaleHeight(srcWidth, srcHeight, width);
height = XomwFile.scaleHeight(srcWidth, srcHeight, width);
if (height == 0) {
// Force height to be at least 1 pixel
height = 1;

@ -20,8 +20,8 @@ import org.junit.*; import gplx.core.tests.*;
import gplx.xowa.mediawiki.includes.utls.*;
import gplx.xowa.mediawiki.includes.parsers.*; import gplx.xowa.mediawiki.includes.parsers.lnkis.*;
import gplx.xowa.mediawiki.includes.filerepo.*; import gplx.xowa.mediawiki.includes.filerepo.file.*;
public class Xomw_ImageHandler__tst {
private final Xomw_ImageHandler__fxt fxt = new Xomw_ImageHandler__fxt();
public class XomwImageHandlerTest {
private final XomwImageHandler_fxt fxt = new XomwImageHandler_fxt();
@Before public void init() {
fxt.Init__file("A.png", 400, 200);
}
@ -30,13 +30,13 @@ public class Xomw_ImageHandler__tst {
fxt.Test__normaliseParams(fxt.Make__handlerParams(200), fxt.Make__handlerParams(200, 100, 200, 100));
}
}
class Xomw_ImageHandler__fxt {
private final Xomw_ImageHandler handler;
private final Xomw_FileRepo repo = new Xomw_FileRepo(Bry_.new_a7("/orig"), Bry_.new_a7("/thumb"));
class XomwImageHandler_fxt {
private final XomwImageHandler handler;
private final XomwFileRepo repo = new XomwFileRepo(Bry_.new_a7("/orig"), Bry_.new_a7("/thumb"));
private final Xomw_parser_env env = new Xomw_parser_env();
private Xomw_File file;
public Xomw_ImageHandler__fxt() {
handler = new Xomw_TransformationalImageHandler(Bry_.new_a7("test_handler"));
private XomwFile file;
public XomwImageHandler_fxt() {
handler = new XomwTransformationalImageHandler(Bry_.new_a7("test_handler"));
}
public Xomw_params_handler Make__handlerParams(int w) {return Make__handlerParams(w, Php_utl_.Null_int, Php_utl_.Null_int, Php_utl_.Null_int);}
public Xomw_params_handler Make__handlerParams(int w, int h, int phys_w, int phys_h) {
@ -48,7 +48,7 @@ class Xomw_ImageHandler__fxt {
return rv;
}
public void Init__file(String title, int w, int h) {
this.file = new Xomw_LocalFile(env, Bry_.new_u8(title), repo, w, h, Xomw_MediaHandlerFactory.Mime__image__png);
this.file = new XomwLocalFile(env, XomwTitle.newFromText(Bry_.new_u8(title)), repo, w, h, XomwMediaHandlerFactory.Mime__image__png);
}
public void Test__normaliseParams(Xomw_params_handler prms, Xomw_params_handler expd) {
// exec

@ -18,9 +18,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
package gplx.xowa.mediawiki.includes.media; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*; import gplx.xowa.mediawiki.includes.*;
import gplx.xowa.mediawiki.includes.filerepo.file.*;
import gplx.xowa.mediawiki.includes.parsers.lnkis.*;
public abstract class Xomw_MediaHandler {
public abstract class XomwMediaHandler {
public byte[] Key() {return key;} private byte[] key;
public Xomw_MediaHandler(byte[] key) {
public XomwMediaHandler(byte[] key) {
this.key = key;
}
@ -83,7 +83,7 @@ public abstract class Xomw_MediaHandler {
* @param File $image
* @param array $paramsVar
*/
public abstract boolean normaliseParams(Xomw_File image, Xomw_params_handler handlerParams);
public abstract boolean normaliseParams(XomwFile image, Xomw_params_handler handlerParams);
// /**
// * Get an image size array like that returned by getimagesize(), or false if it
@ -258,7 +258,7 @@ public abstract class Xomw_MediaHandler {
* @param array $paramsVar Arbitrary set of parameters validated by $this->validateParam()
* @return MediaTransformOutput
*/
public Xomw_MediaTransformOutput getTransform(Xomw_File image, byte[] dstPath, byte[] dstUrl, Xomw_params_handler handlerParams) {
public XomwMediaTransformOutput getTransform(XomwFile image, byte[] dstPath, byte[] dstUrl, Xomw_params_handler handlerParams) {
return this.doTransform(image, dstPath, dstUrl, handlerParams, TRANSFORM_LATER);
}
@ -274,8 +274,8 @@ public abstract class Xomw_MediaHandler {
* @param int $flags A bitfield, may contain self::TRANSFORM_LATER
* @return MediaTransformOutput
*/
public Xomw_MediaTransformOutput doTransform(Xomw_File image, byte[] dstPath, byte[] dstUrl, Xomw_params_handler handlerParams) {return doTransform(image, dstPath, dstUrl, handlerParams, 0);}
public abstract Xomw_MediaTransformOutput doTransform(Xomw_File image, byte[] dstPath, byte[] dstUrl, Xomw_params_handler handlerParams, int flags);
public XomwMediaTransformOutput doTransform(XomwFile image, byte[] dstPath, byte[] dstUrl, Xomw_params_handler handlerParams) {return doTransform(image, dstPath, dstUrl, handlerParams, 0);}
public abstract XomwMediaTransformOutput doTransform(XomwFile image, byte[] dstPath, byte[] dstUrl, Xomw_params_handler handlerParams, int flags);
// /**
// * Get the thumbnail extension and MIME type for a given source MIME type
@ -317,7 +317,7 @@ public abstract class Xomw_MediaHandler {
* @param File $file
* @return boolean
*/
@gplx.Virtual public boolean canRender(Xomw_File file) {
@gplx.Virtual public boolean canRender(XomwFile file) {
return true;
}
@ -328,7 +328,7 @@ public abstract class Xomw_MediaHandler {
* @param File $file
* @return boolean
*/
public boolean mustRender(Xomw_File file) {
public boolean mustRender(XomwFile file) {
return false;
}

@ -18,14 +18,14 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
package gplx.xowa.mediawiki.includes.media; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*; import gplx.xowa.mediawiki.includes.*;
// XO.MW:MW has registry and instance cache; XO only has instance
// XO.MW:SYNC:1.29; DATE:2017-02-05
public class Xomw_MediaHandlerFactory {
public class XomwMediaHandlerFactory {
private final Hash_adp_bry handlers = Hash_adp_bry.cs();
// XO.MW:SYNC:1.29; DATE:2017-02-05
public Xomw_MediaHandlerFactory() {
public XomwMediaHandlerFactory() {
// Default, MediaWiki core media handlers
// 'image/jpeg' => JpegHandler::class,
handlers.Add(Mime__image__png, new Xomw_TransformationalImageHandler(Mime__image__png)); // PngHandler
handlers.Add(Mime__image__png, new XomwTransformationalImageHandler(Mime__image__png)); // PngHandler
// 'image/gif' => GIFHandler::class,
// 'image/tiff' => TiffHandler::class,
// 'image/webp' => WebPHandler::class,
@ -41,8 +41,8 @@ public class Xomw_MediaHandlerFactory {
}
// XO.MW:SYNC:1.29; DATE:2017-02-05
public Xomw_MediaHandler getHandler(byte[] type) {
return (Xomw_MediaHandler)handlers.Get_by(type);
public XomwMediaHandler getHandler(byte[] type) {
return (XomwMediaHandler)handlers.Get_by(type);
}
public static byte[]

@ -20,8 +20,8 @@ import gplx.langs.htmls.*;
import gplx.xowa.mediawiki.includes.utls.*;
import gplx.xowa.mediawiki.includes.parsers.lnkis.*;
import gplx.xowa.mediawiki.includes.filerepo.file.*;
public abstract class Xomw_MediaTransformOutput {
public Xomw_MediaTransformOutput(Xomw_File file, byte[] url, byte[] path, int width, int height) {
public abstract class XomwMediaTransformOutput {
public XomwMediaTransformOutput(XomwFile file, byte[] url, byte[] path, int width, int height) {
this.file = file;
this.url = url;
this.width = width;
@ -33,7 +33,7 @@ public abstract class Xomw_MediaTransformOutput {
// public $responsiveUrls = [];
/** @var File */
private final Xomw_File file;
private final XomwFile file;
/** @var int Image width */
protected final int width;
@ -242,6 +242,7 @@ public abstract class Xomw_MediaTransformOutput {
* @return array
*/
public void getDescLinkAttribs(List_adp attribs, byte[] title, List_adp prms) {
byte[] query = Bry_.Empty;
// if ( is_array( prms ) ) {
// $query = prms;
// } else {
@ -260,7 +261,7 @@ public abstract class Xomw_MediaTransformOutput {
attribs.Clear();
// 'href' => $this->file->getTitle()->getLocalURL( $query ),
attribs.Add_many(Gfh_atr_.Bry__href, this.file.getTitle());
attribs.Add_many(Gfh_atr_.Bry__href, this.file.getTitle().getLocalURL(query));
attribs.Add_many(Gfh_atr_.Bry__class, Bry__class__image);
if (title != null) {
attribs.Add_many(Gfh_atr_.Bry__title, title);
@ -271,7 +272,7 @@ public abstract class Xomw_MediaTransformOutput {
// XO.MW:SYNC:1.29; DATE:2017-02-03
protected void Link_wrap(Bry_bfr bfr, List_adp link_attribs, byte[] contents) {
if (link_attribs != null) {
Xomw_xml.Tags(bfr, Gfh_tag_.Bry__a, link_attribs, contents);
XomwXml.Tags(bfr, Gfh_tag_.Bry__a, link_attribs, contents);
}
else {
bfr.Add(contents);

@ -21,8 +21,8 @@ import gplx.xowa.mediawiki.includes.utls.*;
import gplx.xowa.mediawiki.includes.parsers.lnkis.*;
import gplx.xowa.mediawiki.includes.filerepo.file.*;
// Media transform output for images
public class Xomw_ThumbnailImage extends Xomw_MediaTransformOutput { private final List_adp attribs = List_adp_.New(), link_attribs = List_adp_.New();
public Xomw_ThumbnailImage(Xomw_File file, byte[] url, byte[] path, int w, int h) {super(file, url, path, w, h);
public class XomwThumbnailImage extends XomwMediaTransformOutput { private final List_adp attribs = List_adp_.New(), link_attribs = List_adp_.New();
public XomwThumbnailImage(XomwFile file, byte[] url, byte[] path, int w, int h) {super(file, url, path, w, h);
}
/**
* Get a thumbnail Object from a file and parameters.
@ -36,7 +36,7 @@ public class Xomw_ThumbnailImage extends Xomw_MediaTransformOutput { private fin
* @param String|boolean path Filesystem path to the thumb
* @param array parameters Associative array of parameters
*/
public Xomw_ThumbnailImage(Xomw_File file, byte[] url, byte[] path, Xomw_params_handler parameters) {super(file, url, path, parameters.width, parameters.height);
public XomwThumbnailImage(XomwFile file, byte[] url, byte[] path, Xomw_params_handler parameters) {super(file, url, path, parameters.width, parameters.height);
// defaults = [
// 'page' => false,
// 'lang' => false
@ -207,7 +207,7 @@ public class Xomw_ThumbnailImage extends Xomw_MediaTransformOutput { private fin
// }
// XO.MW.HOOK:ThumbnailBeforeProduceHTML
Xomw_xml.Element(tmp, Gfh_tag_.Bry__img, attribs, Bry_.Empty, Bool_.Y);
XomwXml.Element(tmp, Gfh_tag_.Bry__img, attribs, Bry_.Empty, Bool_.Y);
Link_wrap(bfr, link_attribs_is_null ? null : link_attribs, tmp.To_bry_and_clear());
}
private static final byte[] Bry__vertical_align = Bry_.new_a7("vertical-align: ");

@ -18,7 +18,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
package gplx.xowa.mediawiki.includes.media; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*; import gplx.xowa.mediawiki.includes.*;
import gplx.xowa.mediawiki.includes.filerepo.file.*;
import gplx.xowa.mediawiki.includes.parsers.lnkis.*;
public class Xomw_TransformationalImageHandler extends Xomw_ImageHandler { public Xomw_TransformationalImageHandler(byte[] key) {super(key);
public class XomwTransformationalImageHandler extends XomwImageHandler { public XomwTransformationalImageHandler(byte[] key) {super(key);
}
/**
@ -28,7 +28,7 @@ public class Xomw_TransformationalImageHandler extends Xomw_ImageHandler { publi
* 'physicalWidth' and 'physicalHeight' indicate the thumbnail dimensions.
* @return boolean
*/
@Override public boolean normaliseParams(Xomw_File image, Xomw_params_handler prms) {
@Override public boolean normaliseParams(XomwFile image, Xomw_params_handler prms) {
if (!super.normaliseParams(image, prms)) {
return false;
}
@ -90,7 +90,7 @@ public class Xomw_TransformationalImageHandler extends Xomw_ImageHandler { publi
* @param int flags
* @return MediaTransformError|ThumbnailImage|TransformParameterError
*/
@Override public Xomw_MediaTransformOutput doTransform(Xomw_File image, byte[] dstPath, byte[] dstUrl, Xomw_params_handler prms, int flags) {
@Override public XomwMediaTransformOutput doTransform(XomwFile image, byte[] dstPath, byte[] dstUrl, Xomw_params_handler prms, int flags) {
// if (!this.normaliseParams(image, paramsVar)) {
// return new TransformParameterError(paramsVar);
// }
@ -172,8 +172,8 @@ public class Xomw_TransformationalImageHandler extends Xomw_ImageHandler { publi
// if (isset(paramsVar['page']) && paramsVar['page']) {
// newParams['page'] = paramsVar['page'];
// }
// return new Xomw_ThumbnailImage(image, dstUrl, null, newParams);
return new Xomw_ThumbnailImage(image, dstUrl, null, prms);
// return new XomwThumbnailImage(image, dstUrl, null, newParams);
return new XomwThumbnailImage(image, dstUrl, null, prms);
// }
//
// // Try to make a target path for the thumbnail
@ -318,12 +318,12 @@ public class Xomw_TransformationalImageHandler extends Xomw_ImageHandler { publi
*
* @todo FIXME: No rotation support
*/
private Xomw_ThumbnailImage getClientScalingThumbnailImage(Xomw_File image, Xomw_params_scalar scalerParams) {
private XomwThumbnailImage getClientScalingThumbnailImage(XomwFile image, Xomw_params_scalar scalerParams) {
Xomw_params_handler prms = new Xomw_params_handler();
prms.width = scalerParams.clientWidth;
prms.height = scalerParams.clientHeight;
return new Xomw_ThumbnailImage(image, image.getUrl(), null, prms);
return new XomwThumbnailImage(image, image.getUrl(), null, prms);
}
// /**

@ -36,7 +36,7 @@ public class Xomw_link_holders {
link_id = 0;
}
public void Make_holder(Bry_bfr bfr, Xomw_Title nt, byte[] text, byte[][] query, byte[] trail, byte[] prefix) {
public void Make_holder(Bry_bfr bfr, XomwTitle nt, byte[] text, byte[][] query, byte[] trail, byte[] prefix) {
if (nt == null) {
// Fail gracefully
bfr.Add_str_a7("<!-- ERROR -->").Add(prefix).Add(text).Add(trail);
@ -62,7 +62,7 @@ public class Xomw_link_holders {
}
}
}
public void Test__add(Xomw_Title ttl, byte[] capt) {
public void Test__add(XomwTitle ttl, byte[] capt) {
int key = link_id++;
Xomw_link_holder_item item = new Xomw_link_holder_item(ttl, capt, Bry_.Ary_empty);
internals.Add(key, item);
@ -239,12 +239,12 @@ class Xomw_link_holder_list {
public Xomw_link_holder_item Get_by(int key) {return ary[key];}
}
class Xomw_link_holder_item {
public Xomw_link_holder_item(Xomw_Title title, byte[] text, byte[][] query) {
public Xomw_link_holder_item(XomwTitle title, byte[] text, byte[][] query) {
this.title = title;
this.text = text;
this.query = query;
}
public Xomw_Title Title() {return title;} private final Xomw_Title title;
public XomwTitle Title() {return title;} private final XomwTitle title;
public byte[] Text() {return text;} private final byte[] text;
public byte[] Pdbk() {return title.getPrefixedDBkey();}
public byte[][] Query() {return query;} private final byte[][] query;

@ -26,13 +26,13 @@ public class Xomw_link_holders__tst {
}
}
class Xomw_link_holders__fxt {
private final Xomw_link_holders holders = new Xomw_link_holders(new Xomw_link_renderer(new Xomw_sanitizer()), Bry_bfr_.New());
private final Xomw_link_holders holders = new Xomw_link_holders(new Xomw_link_renderer(new XomwSanitizer()), Bry_bfr_.New());
private final Xomw_parser_bfr pbfr = new Xomw_parser_bfr();
private boolean apos = true;
public Xomw_link_holders__fxt() {
}
public void Init__add(String ttl, String capt) {
holders.Test__add(Xomw_Title.newFromText(Bry_.new_u8(ttl)), Bry_.new_u8(capt));
holders.Test__add(XomwTitle.newFromText(Bry_.new_u8(ttl)), Bry_.new_u8(capt));
}
public void Test__replace(String src, String expd) {
if (apos) expd = gplx.langs.htmls.Gfh_utl.Replace_apos(expd);

@ -46,8 +46,8 @@ public class Xomw_parser {
public Xomw_parser_env Env() {return env;} private final Xomw_parser_env env = new Xomw_parser_env();
public Xomw_parser_options Options() {return options;} private final Xomw_parser_options options = new Xomw_parser_options();
public Xomw_strip_state Strip_state() {return strip_state;} private final Xomw_strip_state strip_state = new Xomw_strip_state();
public Xomw_sanitizer Sanitizer() {return sanitizer;} private final Xomw_sanitizer sanitizer = new Xomw_sanitizer();
public Xomw_linker Linker() {return linker;} private final Xomw_linker linker;
public XomwSanitizer Sanitizer() {return sanitizer;} private final XomwSanitizer sanitizer = new XomwSanitizer();
public XomwLinker Linker() {return linker;} private final XomwLinker linker;
public Bry_bfr Tmp() {return tmp;} private final Bry_bfr tmp = Bry_bfr_.New();
public Xomw_quote_wkr Quote_wkr() {return quote_wkr;} private final Xomw_quote_wkr quote_wkr;
public Xomw_lnki_wkr Lnki_wkr() {return lnki_wkr;} private final Xomw_lnki_wkr lnki_wkr;
@ -64,7 +64,7 @@ public class Xomw_parser {
}
this.link_renderer = new Xomw_link_renderer(sanitizer);
this.linker = new Xomw_linker(link_renderer);
this.linker = new XomwLinker(link_renderer);
this.protocols_trie = Xomw_parser.Protocols__dflt();
this.holders = new Xomw_link_holders(link_renderer, tmp);
this.table_wkr = new Xomw_table_wkr(this);
@ -81,7 +81,7 @@ public class Xomw_parser {
doubleunder_wkr.Init_by_wiki(doubleunder_data, wiki.Lang());
magiclinks_wkr.Init_by_wiki();
}
public void Init_by_page(Xomw_Title ttl) {
public void Init_by_page(XomwTitle ttl) {
pctx.Init_by_page(ttl);
}
public void Internal_parse(Xomw_parser_bfr pbfr, byte[] text) {

@ -66,7 +66,7 @@ class Xomw_parser__fxt {
Xoae_app app = Xoa_app_fxt.Make__app__edit();
Xowe_wiki wiki = Xoa_app_fxt.Make__wiki__edit(app);
mgr.Init_by_wiki(wiki);
mgr.Init_by_page(Xomw_Title.newFromText(Bry_.new_a7("Page_1")));
mgr.Init_by_page(XomwTitle.newFromText(Bry_.new_a7("Page_1")));
}
public void Test__parse(String src_str, String expd) {
byte[] src_bry = Bry_.new_u8(src_str);

@ -18,13 +18,13 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
package gplx.xowa.mediawiki.includes.parsers; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*; import gplx.xowa.mediawiki.includes.*;
import gplx.xowa.mediawiki.includes.parsers.lnkis.*;
public class Xomw_parser_ctx {
public Xomw_Title Page_title() {return page_title;} private Xomw_Title page_title;
public XomwTitle Page_title() {return page_title;} private XomwTitle page_title;
public Xomw_image_params Lnki_wkr__make_image__img_params = new Xomw_image_params();
public byte[][] Lnki_wkr__make_image__match_magic_word = new byte[2][];
public int[] Lnki_wkr__make_image__img_size = new int[2];
public Xomw_params_mto Linker__makeImageLink__prms = new Xomw_params_mto();
public void Init_by_page(Xomw_Title page_title) {
public void Init_by_page(XomwTitle page_title) {
this.page_title = page_title;
}

@ -25,10 +25,10 @@ public class Xomw_parser_env {
public double Global__wgThumbUpright = .75d;
public int[] Global__wgThumbLimits = new int[] {120, 150, 180, 200, 250, 300};
public Xomw_MagicWordMgr Magic_word_mgr() {return magic_word_mgr;} private final Xomw_MagicWordMgr magic_word_mgr = new Xomw_MagicWordMgr();
public Xomw_message_mgr Message_mgr() {return message_mgr;} private final Xomw_message_mgr message_mgr = new Xomw_message_mgr();
public Xomw_file_finder File_finder() {return file_finder;} private Xomw_file_finder file_finder = new Xomw_file_finder__noop();
public Xomw_MediaHandlerFactory MediaHandlerFactory() {return mediaHandlerFactory;} private final Xomw_MediaHandlerFactory mediaHandlerFactory = new Xomw_MediaHandlerFactory();
public XomwMagicWordMgr Magic_word_mgr() {return magic_word_mgr;} private final XomwMagicWordMgr magic_word_mgr = new XomwMagicWordMgr();
public XomwMessageMgr Message_mgr() {return message_mgr;} private final XomwMessageMgr message_mgr = new XomwMessageMgr();
public XomwFileFinder File_finder() {return file_finder;} private XomwFileFinder file_finder = new XomwFileFinderNoop();
public XomwMediaHandlerFactory MediaHandlerFactory() {return mediaHandlerFactory;} private final XomwMediaHandlerFactory mediaHandlerFactory = new XomwMediaHandlerFactory();
public Xomw_parser_env File_finder_(Xomw_file_finder v) {file_finder = v; return this;}
public Xomw_parser_env File_finder_(XomwFileFinder v) {file_finder = v; return this;}
}

@ -28,8 +28,8 @@ public class Xomw_lnke_wkr {// THREAD.UNSAFE: caching for repeated calls
private Btrie_slim_mgr protocol_trie; private final Btrie_rv trv = new Btrie_rv();
private int autonumber;
private final Xomw_parser parser;
private final Xomw_linker linker;
private final Xomw_sanitizer sanitizer;
private final XomwLinker linker;
private final XomwSanitizer sanitizer;
private final Xomw_atr_mgr attribs = new Xomw_atr_mgr();
private Xomw_regex_url regex_url;
private Xomw_regex_space regex_space;

@ -18,5 +18,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
package gplx.xowa.mediawiki.includes.parsers.lnkis; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*; import gplx.xowa.mediawiki.includes.*; import gplx.xowa.mediawiki.includes.parsers.*;
public class Xomw_image_params {
public Xomw_param_map paramMap = null;
public Xomw_MagicWordArray mwArray = null;
public XomwMagicWordArray mwArray = null;
}

@ -38,15 +38,15 @@ import gplx.xowa.parsers.uniqs.*;
*/
public class Xomw_lnki_wkr {// THREAD.UNSAFE: caching for repeated calls
private final Xomw_link_holders holders;
private final Xomw_linker linker;
private final XomwLinker linker;
private final Xomw_link_renderer link_renderer;
// private final Btrie_slim_mgr protocols_trie;
private final Xomw_quote_wkr quote_wkr;
private final Xomw_strip_state strip_state;
private Xomw_parser_env env;
private Xow_wiki wiki;
private Xomw_Title mPageTitle;
// private final Xomw_linker__normalize_subpage_link normalize_subpage_link = new Xomw_linker__normalize_subpage_link();
private XomwTitle mPageTitle;
// private final XomwLinker_NormalizeSubpageLink normalize_subpage_link = new XomwLinker_NormalizeSubpageLink();
private final Bry_bfr tmp;
private final Xomw_parser parser;
private final Xomw_atr_mgr extra_atrs = new Xomw_atr_mgr();
@ -254,7 +254,7 @@ public class Xomw_lnki_wkr {// THREAD.UNSAFE: caching for repeated calls
link = Bry_.Mid(link, 1);
}
// $nt = is_string( $unstrip ) ? Title::newFromText( $unstrip ) : null;
Xomw_Title nt = Xomw_Title.newFromText(link);
XomwTitle nt = XomwTitle.newFromText(link);
// Make subpage if necessary
// boolean useSubpages = nt.Ns().Subpages_enabled();
@ -262,7 +262,7 @@ public class Xomw_lnki_wkr {// THREAD.UNSAFE: caching for repeated calls
// Maybe_do_subpage_link(normalize_subpage_link, orig_link, text);
// link = normalize_subpage_link.link;
// text = normalize_subpage_link.text;
// nt = Xomw_Title.newFromText(link);
// nt = XomwTitle.newFromText(link);
// }
// IGNORE: handled in rewrite above
// else {
@ -271,7 +271,7 @@ public class Xomw_lnki_wkr {// THREAD.UNSAFE: caching for repeated calls
byte[] unstrip = strip_state.Unstrip_nowiki(link);
if (!Bry_.Eq(unstrip, link))
nt = Xomw_Title.newFromText(unstrip);
nt = XomwTitle.newFromText(unstrip);
if (nt == null) {
bfr.Add_mid(src, prv, lnki_bgn + 2); // $s .= $prefix . '[[' . $line;
prv = cur = lnki_bgn + 2;
@ -282,7 +282,7 @@ public class Xomw_lnki_wkr {// THREAD.UNSAFE: caching for repeated calls
int ns = nt.getNamespace();
if (might_be_img) { // if this is actually an invalid link
if (ns == Xomw_Defines.NS_FILE && no_force) { // but might be an image
if (ns == XomwDefines.NS_FILE && no_force) { // but might be an image
boolean found = false;
// while (true) {
// // look at the next 'line' to see if we can close it there
@ -357,7 +357,7 @@ public class Xomw_lnki_wkr {// THREAD.UNSAFE: caching for repeated calls
// continue;
// }
//
if (ns == Xomw_Defines.NS_FILE) {
if (ns == XomwDefines.NS_FILE) {
// boolean is_good_image = !wfIsBadImage(nt->getDBkey(), this->mTitle)
boolean is_good_image = true;
if (is_good_image) {
@ -383,7 +383,7 @@ public class Xomw_lnki_wkr {// THREAD.UNSAFE: caching for repeated calls
continue;
}
}
else if (ns == Xomw_Defines.NS_CATEGORY) {
else if (ns == XomwDefines.NS_CATEGORY) {
bfr.Trim_end_ws(); // s = rtrim(s . "\n"); // T2087
if (was_blank) {
@ -407,7 +407,7 @@ public class Xomw_lnki_wkr {// THREAD.UNSAFE: caching for repeated calls
// Self-link checking. For some languages, variants of the title are checked in
// LinkHolderArray::doVariants() to allow batching the existence checks necessary
// for linking to a different variant.
if (ns != Xomw_Defines.NS_SPECIAL && nt.equals(mPageTitle) && !nt.hasFragment()) {
if (ns != XomwDefines.NS_SPECIAL && nt.equals(mPageTitle) && !nt.hasFragment()) {
bfr.Add(prefix);
linker.makeSelfLinkObj(bfr, nt, text, Bry_.Empty, trail, Bry_.Empty);
continue;
@ -415,7 +415,7 @@ public class Xomw_lnki_wkr {// THREAD.UNSAFE: caching for repeated calls
// NS_MEDIA is a pseudo-namespace for linking directly to a file
// @todo FIXME: Should do batch file existence checks, see comment below
if (ns == Xomw_Defines.NS_MEDIA) {
if (ns == XomwDefines.NS_MEDIA) {
// Give extensions a chance to select the file revision for us
// options = [];
// desc_query = false;
@ -444,7 +444,7 @@ public class Xomw_lnki_wkr {// THREAD.UNSAFE: caching for repeated calls
}
}
}
public void makeImage(Xomw_parser_ctx pctx, Bry_bfr bfr, Xomw_Title title, byte[] options_at_link, Xomw_link_holders holders) {
public void makeImage(Xomw_parser_ctx pctx, Bry_bfr bfr, XomwTitle title, byte[] options_at_link, Xomw_link_holders holders) {
// Check if the options text is of the form "options|alt text"
// Options are:
// * thumbnail make a thumbnail with enlarge-icon and caption, alignment depends on lang
@ -481,15 +481,15 @@ public class Xomw_lnki_wkr {// THREAD.UNSAFE: caching for repeated calls
// Fetch and register the file (file title may be different via hooks)
// list($file, $title) = $this->fetchFileAndTitle($title, $options);
Xomw_File file = fetchFileAndTitle(title, null);
XomwFile file = fetchFileAndTitle(title, null);
// Get parameter map
Xomw_MediaHandler handler = file == null ? null : file.getHandler();
XomwMediaHandler handler = file == null ? null : file.getHandler();
Xomw_image_params tmp_img_params = pctx.Lnki_wkr__make_image__img_params;
this.getImageParams(tmp_img_params, handler);
Xomw_param_map paramMap = tmp_img_params.paramMap;
Xomw_MagicWordArray mwArray = tmp_img_params.mwArray;
XomwMagicWordArray mwArray = tmp_img_params.mwArray;
// XO.MW.UNSUPPORTED.TrackingCategory: if (!$file) $this->addTrackingCategory('broken-file-category');
@ -697,7 +697,7 @@ public class Xomw_lnki_wkr {// THREAD.UNSAFE: caching for repeated calls
private static Xomw_param_list[] internalParamNames;
private static Xomw_param_map internalParamMap;
private void getImageParams(Xomw_image_params rv, Xomw_MediaHandler handler) {
private void getImageParams(Xomw_image_params rv, XomwMediaHandler handler) {
byte[] handlerClass = handler == null ? Bry_.Empty : handler.Key();
rv.paramMap = (Xomw_param_map)mImageParams.Get_by(handlerClass);
// NOTE: lazy-init; code below can be inefficent
@ -732,12 +732,12 @@ public class Xomw_lnki_wkr {// THREAD.UNSAFE: caching for repeated calls
}
this.mImageParams.Add(handlerClass, paramMap);
rv.paramMap = paramMap;
Xomw_MagicWordArray mw_array = new Xomw_MagicWordArray(env.Magic_word_mgr(), paramMap.Keys());
XomwMagicWordArray mw_array = new XomwMagicWordArray(env.Magic_word_mgr(), paramMap.Keys());
this.mImageParamsMagicArray.Add(handlerClass, mw_array);
rv.mwArray = mw_array;
}
else {
rv.mwArray = (Xomw_MagicWordArray)mImageParamsMagicArray.Get_by(handlerClass);
rv.mwArray = (XomwMagicWordArray)mImageParamsMagicArray.Get_by(handlerClass);
}
}
// Parsed a width param of imagelink like 300px or 200x300px
@ -777,8 +777,8 @@ public class Xomw_lnki_wkr {// THREAD.UNSAFE: caching for repeated calls
* @param array $options Array of options to RepoGroup::findFile
* @return array ( File or false, Title of file )
*/
public Xomw_File fetchFileAndTitle(Xomw_Title title, Hash_adp options) {
Xomw_File file = fetchFileNoRegister(title, options);
public XomwFile fetchFileAndTitle(XomwTitle title, Hash_adp options) {
XomwFile file = fetchFileNoRegister(title, options);
//$time = $file ? $file->getTimestamp() : false;
//$sha1 = $file ? $file->getSha1() : false;
@ -801,8 +801,8 @@ public class Xomw_lnki_wkr {// THREAD.UNSAFE: caching for repeated calls
* @param array $options Array of options to RepoGroup::findFile
* @return File|boolean
*/
private Xomw_File fetchFileNoRegister(Xomw_Title title, Hash_adp options) {
Xomw_File file = null;
private XomwFile fetchFileNoRegister(XomwTitle title, Hash_adp options) {
XomwFile file = null;
// if ( isset( $options['broken'] ) ) {
// file = false; // broken thumbnail forced by hook
// } elseif ( isset( $options['sha1'] ) ) { // get by (sha1,timestamp)
@ -812,13 +812,13 @@ public class Xomw_lnki_wkr {// THREAD.UNSAFE: caching for repeated calls
// }
return file;
}
public void Maybe_do_subpage_link(Xomw_linker__normalize_subpage_link rv, byte[] target, byte[] text) {
public void Maybe_do_subpage_link(XomwLinker_NormalizeSubpageLink rv, byte[] target, byte[] text) {
linker.normalizeSubpageLink(rv, mPageTitle, target, text);
}
public void Replace_link_holders(Xomw_parser_ctx pctx, Xomw_parser_bfr pbfr) {
holders.Replace(pctx, pbfr);
}
public void Make_known_link_holder(Bry_bfr bfr, Xomw_Title nt, byte[] text, byte[] trail, byte[] prefix) {
public void Make_known_link_holder(Bry_bfr bfr, XomwTitle nt, byte[] text, byte[] trail, byte[] prefix) {
byte[][] split_trail = linker.splitTrail(trail);
byte[] inside = split_trail[0];
trail = split_trail[1];

@ -26,13 +26,13 @@ public class Xomw_lnki_wkr__file__tst {
fxt.Init__file("A.png", 300, 200);
}
@Test public void Plain() {
fxt.Test__to_html("[[File:A.png]]", "<a href='A.png' class='image'><img alt='A.png' src='/orig/7/70/A.png' /></a>");
fxt.Test__to_html("[[File:A.png]]", "<a href='/wiki/A.png' class='image'><img alt='A.png' src='/orig/7/70/A.png' /></a>");
}
@Test public void Thumb() {
fxt.Test__to_html("[[File:A.png|thumb]]", "<div class='thumb tright'><div class='thumbinner' style='width:222px;'><a href='A.png' class='image'><img alt='A.png' src='/thumb/7/70/A.png/220px-A.png' class='thumbimage' /></a> <div class='thumbcaption'><div class='magnify'><a href='' class='internal'></a></div></div></div></div>");
fxt.Test__to_html("[[File:A.png|thumb]]", "<div class='thumb tright'><div class='thumbinner' style='width:222px;'><a href='/wiki/A.png' class='image'><img alt='A.png' src='/thumb/7/70/A.png/220px-A.png' class='thumbimage' /></a> <div class='thumbcaption'><div class='magnify'><a href='' class='internal'></a></div></div></div></div>");
}
@Test public void Size() {
fxt.Test__to_html("[[File:A.png|123x456px]]", "<a href='A.png' class='image'><img alt='A.png' src='/thumb/7/70/A.png/123px-A.png' /></a>");
fxt.Test__to_html("[[File:A.png|123x456px]]", "<a href='/wiki/A.png' class='image'><img alt='A.png' src='/thumb/7/70/A.png/123px-A.png' /></a>");
}
@Test public void fitBoxWidth() {
// COMMENT:"Height is the relative smaller dimension, so scale width accordingly"
@ -68,8 +68,8 @@ class Xomw_lnki_wkr__fxt {
private final Xomw_lnki_wkr wkr;
private final Xomw_parser_ctx pctx;
private final Xomw_parser_bfr pbfr = new Xomw_parser_bfr();
private final Xomw_file_finder__mock file_finder;
private final Xomw_FileRepo repo = new Xomw_FileRepo(Bry_.new_a7("/orig"), Bry_.new_a7("/thumb"));
private final XomwFileFinderMock file_finder;
private final XomwFileRepo repo = new XomwFileRepo(Bry_.new_a7("/orig"), Bry_.new_a7("/thumb"));
private boolean apos = true;
public Xomw_lnki_wkr__fxt() {
Xoae_app app = Xoa_app_fxt.Make__app__edit();
@ -78,7 +78,7 @@ class Xomw_lnki_wkr__fxt {
wkr = parser.Lnki_wkr();
// env
file_finder = new Xomw_file_finder__mock(parser.Env());
file_finder = new XomwFileFinderMock(parser.Env());
parser.Env().File_finder_(file_finder);
parser.Env().Magic_word_mgr().Add(Bry_.new_u8("img_thumbnail"), Bool_.Y, Bry_.Ary("thumb"));
parser.Env().Magic_word_mgr().Add(Bry_.new_u8("img_width"), Bool_.Y, Bry_.Ary("$1px"));
@ -86,13 +86,13 @@ class Xomw_lnki_wkr__fxt {
// ctx
pctx = new Xomw_parser_ctx();
pctx.Init_by_page(Xomw_Title.newFromText(Bry_.new_a7("Page_1")));
pctx.Init_by_page(XomwTitle.newFromText(Bry_.new_a7("Page_1")));
}
public void Clear() {
wkr.Clear_state();
}
public void Init__file(String title, int w, int h) {
file_finder.Add(title, repo, w, h, Xomw_MediaHandlerFactory.Mime__image__png);
file_finder.Add(title, repo, w, h, XomwMediaHandlerFactory.Mime__image__png);
}
public void Test__parse(String src_str, String expd) {
byte[] src_bry = Bry_.new_u8(src_str);

@ -29,13 +29,13 @@ public class Xomw_magiclinks_wkr {
private final Xomw_parser parser;
private final Xomw_regex_boundary regex_boundary;
private final Xomw_regex_url regex_url;
private final Xomw_sanitizer sanitizer;
private final Xomw_linker linker;
private final XomwSanitizer sanitizer;
private final XomwLinker linker;
private final Xomw_atr_mgr atrs = new Xomw_atr_mgr();
private byte[] page_title;
private static final byte Regex__anch = 1, Regex__elem = 2, Regex__free = 3;
public Xomw_magiclinks_wkr(Xomw_parser parser, Xomw_sanitizer sanitizer, Xomw_linker linker, Xomw_regex_boundary regex_boundary, Xomw_regex_url regex_url) {
public Xomw_magiclinks_wkr(Xomw_parser parser, XomwSanitizer sanitizer, XomwLinker linker, Xomw_regex_boundary regex_boundary, Xomw_regex_url regex_url) {
this.parser = parser;
this.sanitizer = sanitizer;
this.linker = linker;

@ -72,7 +72,7 @@ class Xomw_magiclinks_wkr__fxt {
private final Xomw_parser_bfr pbfr = new Xomw_parser_bfr();
public Xomw_magiclinks_wkr__fxt() {
Xomw_regex_space regex_space = new Xomw_regex_space();
pctx.Init_by_page(Xomw_Title.newFromText(Bry_.new_a7("Page_1")));
pctx.Init_by_page(XomwTitle.newFromText(Bry_.new_a7("Page_1")));
Xomw_parser parser = new Xomw_parser();
this.wkr = new Xomw_magiclinks_wkr(parser, parser.Sanitizer(), parser.Linker(), new Xomw_regex_boundary(regex_space), new Xomw_regex_url(regex_space));
wkr.Init_by_wiki();

@ -22,7 +22,7 @@ import gplx.xowa.mediawiki.includes.libs.*; import gplx.xowa.parsers.uniqs.*;
public class Xomw_table_wkr implements gplx.core.brys.Bry_split_wkr {// THREAD.UNSAFE: caching for repeated calls
private final Bry_bfr tmp;
private Bry_bfr bfr;
private final Xomw_sanitizer sanitizer; private final Xomw_strip_state strip_state;
private final XomwSanitizer sanitizer; private final Xomw_strip_state strip_state;
private final List_adp
td_history = List_adp_.New() // Is currently a td tag open?
, last_tag_history = List_adp_.New() // Save history of last lag activated (td, th or caption)

@ -17,7 +17,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package gplx.xowa.mediawiki.includes.title; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*; import gplx.xowa.mediawiki.includes.*;
import gplx.xowa.mediawiki.includes.utls.*;
public class Xomw_MediaWikiTitleCodec {
public class XomwMediaWikiTitleCodec {
// /**
// * @var Language
// */
@ -231,11 +231,11 @@ public class Xomw_MediaWikiTitleCodec {
* @return array A map with the fields 'interwiki', 'fragment', 'namespace',
* 'user_case_dbkey', and 'dbkey'.
*/
public Xomw_MediaWikiTitleCodec_Parts splitTitleString(byte[] text, int defaultNamespace) {
public XomwMediaWikiTitleCodecParts splitTitleString(byte[] text, int defaultNamespace) {
byte[] dbkey = Php_str_.str_replace(Byte_ascii.Space, Byte_ascii.Underline, text);
// Initialisation
Xomw_MediaWikiTitleCodec_Parts parts = new Xomw_MediaWikiTitleCodec_Parts(dbkey, defaultNamespace);
XomwMediaWikiTitleCodecParts parts = new XomwMediaWikiTitleCodecParts(dbkey, defaultNamespace);
// Strip Unicode bidi override characters.
// Sometimes they slip into cut-n-pasted page titles, where the
@ -274,7 +274,7 @@ public class Xomw_MediaWikiTitleCodec {
// Namespace or interwiki prefix
if (Bry_.Has_at_bgn(dbkey, Bry_.new_a7("File:"))) {
parts.ns = Xomw_Defines.NS_FILE;
parts.ns = XomwDefines.NS_FILE;
dbkey = Bry_.Mid(dbkey, 5);
}
// $prefixRegexp = "/^(.+?)_*:_*(.*)$/S";

@ -16,14 +16,14 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package gplx.xowa.mediawiki.includes.title; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*; import gplx.xowa.mediawiki.includes.*;
public class Xomw_MediaWikiTitleCodec_Parts {
public class XomwMediaWikiTitleCodecParts {
public byte[] interwiki;
public boolean local_interwiki;
public byte[] fragment = Bry_.Empty;
public int ns;
public byte[] dbkey;
public byte[] user_case_dbkey;
public Xomw_MediaWikiTitleCodec_Parts(byte[] dbkey, int defaultNamespace) {
public XomwMediaWikiTitleCodecParts(byte[] dbkey, int defaultNamespace) {
this.interwiki = Bry_.Empty;
this.local_interwiki = false;
this.fragment = Bry_.Empty;
Loading…
Cancel
Save